Namespace

Purple – 3.0

Purple Universal Chat Library

Version3.0.0-devel
AuthorsPidgin Developers
LicenseGPL-2.0-or-later
Websitehttps://keep.imfreedom.org/pidgin/pidgin/
Sourcehttps://keep.imfreedom.org/pidgin/pidgin/

Build

C headerspurple.h
pkg-config filespurple-3

Dependencies

GLib—2.0 General-purpose, portable utility library.
Browse documentation
GObject—2.0 The base type system library
Browse documentation
GPlugin—1.0 GPlugin Plugin Library
Browse documentation

Classes

Account

A PurpleAccount is the core configuration for connecting to a specific account. User interfaces typically allow users to create these in a dialog or wizard.

AccountManager

A manager that keeps track of all PurpleAccounts.

AccountPresence

A PurpleAccountPresence represent the PurplePresence for a specific PurpleAccount.

AddContactRequest

PurpleAddContactRequest is a data structure that contains all of the information when someone has added you to their contact list, so the user interface can ask the user to add the remote user to their contact list.

Attachment

PurpleAttachment represents a file attached to a PurpleMessage.

AuthorizationRequest

PurpleAuthorizationRequest is a data structure that contains all of the information when someone has requested authorization to add you to their contact list.

BlistNode

A Buddy list node. This can represent a group, a buddy, or anything else. This is a base class for PurpleBuddy, PurpleContact, PurpleGroup, and for anything else that wants to put itself in the buddy list.

Buddy

A buddy on the buddy list.

BuddyList

The Buddy List.

BuddyPresence

A PurpleBuddyPresence represent the PurplePresence for a specific PurpleBuddy.

Chat

A chat on the buddy list.

ChatConversation

Structure representing a chat conversation instance.

ChatUser

Structure representing a chat user instance.

CircularBuffer
Connection

Represents an active connection on an account.

Contact

A contact is a concrete representation of a user in that it contains all of the contact information as well as a PurpleAccount to use that contact information with.

ContactInfo

The information about a contact. This information is used everywhere you need to refer to a user. Be it a chat, an direct message, a file transfer, etc.

ContactManager

A manager for PurpleContacts.

Conversation

A core representation of a conversation between two or more people.

ConversationManager

PurpleConversationManager keeps track of all PurpleConversations inside of libpurple and allows searching of them.

CountingNode

A node that keeps count of the number of children that it has. It tracks the total number of children, the number of children corresponding to online accounts, and the number of online children.

CredentialManager

Purple Credential Manager is the main API access to different credential providers. Providers register themselves with the manager and then the user can choose which provider to use.

CredentialProvider

PurpleCredentialProvider is an abstract base class for implementing support for a specific password or keyring manager. At the time of this writing, libpurple ships with plugins for libsecret, macOS Keychain Access, KWallet, and the Windows Credentials store by subclassing PurpleCredentialProvider.

Group
HistoryAdapter

PurpleHistoryAdapter is a base class that should be sub classed by history adapters. It defines the behavior of all history adapters and implements some shared properties.

HistoryManager

PurpleHistoryManager keeps track of all adapters and emits signals when adapters are registered and unregistered.

Image

PurpleImage object is a container for raw image data. It doesn’t manipulate image data, just stores it in its binary format - png, jpeg etc. Thus, it’s totally independent from the UI.

IMConversation

Structure representing an IM conversation instance.

Media

The media instance.

MediaCandidate

An opaque structure representing a network candidate (IP Address and port pair).

MediaCodec

An opaque structure representing an audio or video codec.

MediaElementInfo

An opaque structure representing an audio/video source/sink.

MediaManager

The media manager’s data.

Message

PurpleMessage represents any message passed between users in libpurple.

MetaContact

A contact on the buddy list.

NoopCredentialProvider

PurpleNoopCredentialProvider is a PurpleCredentialProvider that does not actually provider credentials. It is used to implement the default behavior of requiring users to input passwords.

Notification

An object that represents a notification.

NotificationManager

Purple Notification Manager manages all notifications between protocols and plugins and how the user interface interacts with them.

Person

A collection of PurpleContactInfo that contains a user selectable custom avatar and alias.

PluginInfo

PurplePluginInfo is a GPluginPluginInfo subclass that adds additional libpurple specific properties.

Presence

A PurplePresence is like a collection of PurpleStatuses (plus some other random info). For any buddy, or for any one of your accounts, or for any person with which you’re chatting, you may know various amounts of information. This information is all contained in one PurplePresence. If one of your buddies is away and idle, then the presence contains the PurpleStatus for their awayness, and it contains their current idle time. PurplePresences are never saved to disk. The information they contain is only relevant for the current Purple session.

Protocol

PurpleProtocol is the base type for all protocols in libpurple.

ProtocolManager

PurpleProtocolManager keeps track of all protocols and emits signals when protocols are registered and unregistered.

ProxyInfo
QueuedOutputStream

An implementation of GFilterOutputStream which allows queuing data for output. This allows data to be queued while other data is being output. Therefore, data doesn’t have to be manually stored while waiting for stream operations to finish.

Roomlist

Represents a list of rooms for a given connection on a given protocol.

RoomlistRoom

PurpleRoomlistRoom keeps track of all PurpleConversations inside of libpurple and allows searching of them.

SqliteHistoryAdapter

PurpleSqliteHistoryAdapter is a class that allows interfacing with an SQLite database to store history. It is a subclass of PurpleHistoryAdapter.

Status

A PurpleStatus can be thought of as an “instance” of a PurpleStatusType. If you’re familiar with object-oriented programming languages then this should be immediately clear. Say, for example, that one of your AIM buddies has set himself as “away.” You have a PurpleBuddy node for this person in your buddy list. Purple wants to mark this buddy as “away,” so it creates a new PurpleStatus. The PurpleStatus has its PurpleStatusType set to the “away” state for the oscar protocol. The PurpleStatus also contains the buddy’s away message. PurpleStatuses are sometimes saved, depending on the context. The current PurpleStatuses associated with each of your accounts are saved so that the next time you start Purple, your accounts will be set to their last known statuses. There is also a list of saved statuses that are written to the status.xml file. Also, each PurpleStatus has a “saveable” boolean. If “saveable” is set to FALSE then the status is NEVER saved. All PurpleStatuses should be inside a PurplePresence.

Tags

Tags is an object that can be used to keep track of arbitrary tags on objects. Tags are simple strings that use the first ‘:’ to delimit a value. For example: foo is a tag with just a name and no value, but foo:bar is a tag with a name and value. Please note this distinction when the API calls for a name versus a tag which would be the name and the value.

Ui

An abstract class representing a user interface. All user interfaces must create a subclass of this and pass it to purple_core_init().

Whiteboard

A abstract whiteboard object.

WhiteboardManager

PurpleWhiteboardManager keeps track of all whiteboards and emits signals when whiteboards are registered and unregistered.

Xfer

Interfaces

DebugUi

PurpleDebugUiInterface defines the behavior that libpurple uses to interface the debug API with the user interface.

IdleUi
MediaBackend

A placeholder to represent any media backend.

ProtocolActions

The PurpleProtocolActions interface defines the behavior of a protocol’s actions interface.

ProtocolChat

PurpleProtocolChat describes the API that protocols need to implement for handling multiple user conversations.

ProtocolClient

PurpleProtocolClient interface defines the behavior of a typical chat service’s client interface.

ProtocolIM

PurpleProtocolIM describes the API that protocols need to implement for handling one on one conversations.

ProtocolMedia

PurpleProtocolMedia describes the multimedia api that is available for protocols.

ProtocolPrivacy

PurpleProtocolPrivacy describes the privacy API available to protocols.

ProtocolRoomlist

PurpleProtocolRoomlist is an interface to abstract how to handle rooms lists at the protocol level.

ProtocolServer

PurpleProtocolServer describes the API for protocols that have a central server.

ProtocolWhiteboard

The PurpleProtocolWhiteboard interface defines the behavior of a protocol’s whiteboard interface.

ProtocolXfer

Structs

_MediaManagerClass
AccountOption

An option for an account.

AccountUiOps

Account UI operations, used to notify the user of status changes and when buddies add this account to their buddy lists.

AccountUserSplit

A username split.

ActionMenu

A generic structure that contains information about an “action”. One place this is used is by protocols to tell the core the list of available right-click actions for a buddy list row.

BuddyIcon

An opaque structure representing a buddy icon for a particular user on a particular PurpleAccount. Instances are reference-counted; use purple_buddy_icon_ref() and purple_buddy_icon_unref() to take and release references.

BuddyIconSpec

A description of a Buddy Icon specification. This tells Purple what kind of image file it should give a protocol, and what kind of image file it should expect back. Dimensions less than 1 should be ignored and the image not scaled.

ConnectionErrorInfo

Holds the type of an error along with its description.

ConnectionUiOps

Connection UI operations. Used to notify the user of changes to connections, such as being disconnected, and to respond to the underlying network connection appearing and disappearing. UIs should call #purple_connections_set_ui_ops() with an instance of this struct.

ConversationUiOps

Libpurple needs to tell the user interface when certain things happen in a conversation and it uses this structure to do so.

Core
KeyValuePair

A key-value pair.

MediaAppDataCallbacks

A set of callbacks that can be installed on an Application data session with purple_media_manager_set_application_data_callbacks()

Mood

A structure to represent a mood.

NotifySearchButton

Definition of a button.

NotifySearchColumn

Single column of a search result.

NotifySearchResults

Search results object.

NotifyUiOps

Notification UI operations.

NotifyUserInfo
NotifyUserInfoEntry
PluginPref
PluginPrefFrame
PrefCallbackData

Opaque type to carry callback information.

ProtocolAction

Represents an action that the protocol can perform. This shows up in the Accounts menu, under a submenu with the name of the account.

ProtocolChatEntry

Represents an entry containing information that must be supplied by the user when joining a chat.

RequestCommonParameters

Common parameters for UI operations.

RequestDatasheet

Request Datasheet is a UI abstracted table.

RequestDatasheetAction
RequestDatasheetRecord
RequestField

A request field.

RequestFieldGroup

A group of fields with a title.

RequestFields

Multiple fields request data.

RequestUiOps

Request UI operations.

RoomlistField
RoomlistUiOps

The room list ops to be filled out by the UI.

SavedStatus

Saved statuses don’t really interact much with the rest of Purple. It could really be a plugin. It’s just a list of away states. When a user chooses one of the saved states, their Purple accounts are set to the settings of that state.

SavedStatusSub
StatusAttribute
StatusType

PurpleStatusType’s are created by each protocol. They outline the available statuses of the protocol. AIM, for example, supports an available state with an optional available message, an away state with a mandatory message, and an invisible state (which is technically “independent” of the other two, but we’ll get into that later). PurpleStatusTypes are very permanent. They are hardcoded in each protocol and will not change often. And because they are hardcoded, they do not need to be saved to any XML file.

StunNatDiscovery

A data type representing a STUN lookup.

TestStringData
WhiteboardOps

Whiteboard protocol operations.

WhiteboardUiOps

The PurpleWhiteboard UI Operations.

XferUiOps

File transfer UI operations.

XmlNode

XmlNode is a simplified API for handling XML. An XmlNode represents an XML element and has API for children as well as attributes.

Aliases

CmdId

A unique integer representing a command registered with purple_cmd_register(), which can subsequently be passed to purple_cmd_unregister() to unregister that command.

Plugin

Represents a plugin handle. This type is an alias for GPluginPlugin.

PluginInterface
Sqlite3

A sqlite3 connection.

Enumerations

AccountPrivacyType

Privacy data types.

AccountRequestResponse

Account request response types.

CmdFlag

Flags used to set various properties of commands. Every command should have at least one of #PURPLE_CMD_FLAG_IM and #PURPLE_CMD_FLAG_CHAT set in order to be even slightly useful.

CmdPriority

Commands are registered from multiple locations which leads to name collisions. PurpleCmdPriority is used to determine which command will be run.

CmdRet

Commands registered with the core return one of these values when run. Normally, a command will want to return one of the first two; in some unusual cases, you might want to have several functions called for a particular command; in this case, they should return

PURPLE_CMD_RET_CONTINUE to cause the core to fall through to other

commands with the same name.

CmdStatus

The possible results of running a command with purple_cmd_do_command().

ConnectionError

Possible errors that can cause a connection to be closed.

ConnectionState

A representation of the state of a PurpleConnection.

ContactInfoPermission

A representation of whether or not a contact has permission to contact the user.

ConversationUpdateType

Conversation update type.

DebugLevel

Available debug levels.

IMTypingState

The typing state of a user.

MediaCandidateType

Media candidate types.

MediaCaps

Media caps.

MediaComponentType

Media component types.

MediaInfoType

Media info types.

MediaNetworkProtocol

Media network protocols.

MediaState

Media state-changed types.

MessageContentType

The message formatting for the message.

NotificationType
NotifyMessageType

Notification message types.

NotifySearchButtonType

Constant values to define the type of buttons to use in a request dialog. These are used by user interfaces to label and possibly add an icon to the button.

NotifyType

Notification types.

NotifyUserInfoEntryType

Types of PurpleNotifyUserInfoEntry objects.

PluginPrefType
PmpType
PrefType

Preference data types.

ProxyType

A type of proxy connection.

RequestDatasheetColumnType

The type of data to be shown in a column.

RequestFeature

Feature flags for the request api.

RequestFieldType

A type of field.

RequestIconType

Constants to define which kind of icon should be displayed.

RequestType

Request types.

RoomlistFieldType

The types of fields.

StatusPrimitive

A primitive defining the basic structure of a status type.

StunStatus

The status of a PurpleStunNatDiscovery.

XferStatus

The different states of the xfer.

XferType

Types of file transfers.

XmlNodeType

The valid types for an PurpleXmlNode.

Bitfields

BuddyIconScaleFlags
ChatUserFlags

Flags applicable to users in Chats.

ConnectionFlags

Flags to change behavior of the client for a given connection.

InputCondition

An input condition.

MediaElementType
MediaSessionType

Media session types.

MessageFlags

Flags applicable to a message. Most will have send, recv or system.

PluginInfoFlags

Flags that can be used to treat plugins differently.

ProtocolOptions

Protocol options.

StringFormatType

String format for preferences.

Callbacks

AccountManagerForeachFunc

A function used as a callback with purple_account_manager_foreach().

AttachmentForeachFunc

Called when iterating PurpleAttachments.

BlistWalkFunc

A callback function for purple_blist_walk.

CmdFunc

A function implementing a command, as passed to purple_cmd_register().

ConversationManagerForeachFunc

A function to be used as a callback with purple_conversation_manager_foreach().

CredentialManagerForeachFunc

A function to be used as a callback with purple_credential_manager_foreach().

FilterAccountFunc
HistoryManagerForeachFunc

A function to be used as a callback with purple_history_manager_foreach().

InputFunction

The type of callbacks to handle events on file descriptors, as passed to purple_input_add(). The callback will receive the user_data passed to purple_input_add(), the file descriptor on which the event occurred, and the condition that was satisfied to cause the callback to be invoked.

MediaElementCreateCallback
MenuWalkFunc

Used as a parameter to purple_menu_walk(). While walking, model will be updated to point to the current section or submenu and will only be the model that was passed to purple_menu_walk() for its immediate children.

NotifyCloseCallback

Notification close callbacks.

NotifySearchResultsCallback

Callback for a button in a search result.

PluginPrefFrameCb

Returns the preferences frame for the plugin.

PluginPrefRequestCb
PrefCallback

The type of callbacks for preference changes.

ProtocolActionCallback
ProtocolManagerForeachFunc

A function to be used as a callback with purple_protocol_manager_foreach().

RequestActionCb

The type of callbacks passed to purple_request_action(). The first argument is the user_data parameter; the second is the index in the list of actions of the one chosen.

RequestCancelCb

A callback that’s used to handle cancel actions.

RequestChoiceCb

The type of callbacks passed to purple_request_choice(). The first argument is the user_data parameter; the second is the values of those choice.

RequestDatasheetActionCb
RequestDatasheetActionCheckCb
RequestFieldsCb
RequestFieldSensitivityCb
RequestFieldValidator
RequestFileCb
RequestHelpCb
RequestInputCb
SignalMarshalFunc

A generic function pointer type used to register signals.

StunCallback
TestStringFreeFunc
TestStringFunc

Functions

accounts_delete

Deletes an account.

accounts_get_handle

Returns the accounts subsystem handle.

accounts_get_ui_ops

Returns the UI operations structure used for accounts.

accounts_init

Initializes the accounts subsystem.

accounts_restore_current_statuses

This is called by the core after all subsystems and what not have been initialized. It sets all enabled accounts to their startup status by signing them on, setting them away, etc.

accounts_schedule_save

Schedules saving of accounts.

accounts_set_ui_ops

Sets the UI operations structure to be used for accounts.

accounts_uninit

Uninitializes the accounts subsystem.

attrs_from_vargs

Returns a hash table of attributes constructed from args.

blist_add_account

Called when an account connects. Tells the UI to update all the buddies.

blist_add_buddy

Adds a new buddy to the buddy list.

blist_add_chat

Adds a new chat to the buddy list.

blist_add_contact

Adds a new contact to the buddy list.

blist_add_group

Adds a new group to the buddy list.

blist_boot

Loads the buddy list.

blist_find_buddies

Finds all PurpleBuddy structs given a name and an account.

blist_find_buddy

Finds the buddy struct given a name and an account.

blist_find_buddy_in_group

Finds the buddy struct given a name, an account, and a group.

blist_find_chat

Finds a chat by name.

blist_find_group

Finds a group by name.

blist_get_buddies

Returns a list of every buddy in the list. Use of this function is discouraged if you do not actually need every buddy in the list. Use purple_blist_find_buddies instead.

blist_get_default

Returns the default buddy list.

blist_get_default_group

Finds or creates default group.

blist_get_default_group_name

Gets the default group name for the buddy list.

blist_get_default_root

Returns the root node of the default buddy list.

blist_get_handle

Returns the handle for the buddy list subsystem.

blist_get_root

Returns the root node of the specified buddy list.

blist_init

Initializes the buddy list subsystem.

blist_new_node

Sets UI-specific data on a node.

blist_remove_account

Called when an account disconnects. Sets the presence of all the buddies to 0 and tells the UI to update them.

blist_remove_buddy

Removes a buddy from the buddy list and frees the memory allocated to it. This doesn’t actually try to remove the buddy from the server list.

blist_remove_chat

Removes a chat from the buddy list and frees the memory allocated to it.

blist_remove_contact

Removes a contact, and any buddies it contains, and frees the memory allocated to it. This calls purple_blist_remove_buddy and therefore doesn’t remove the buddies from the server list.

blist_remove_group

Removes a group from the buddy list and frees the memory allocated to it and to its children.

blist_request_add_buddy

Requests from the user information needed to add a buddy to the buddy list.

blist_request_add_chat

Requests from the user information needed to add a chat to the buddy list.

blist_request_add_group

Requests from the user information needed to add a group to the buddy list.

blist_save_account

Save all the data for an account.

blist_save_node

This is called when a node has been modified and should be saved by the UI.

blist_schedule_save

Schedule a save of the blist.xml file. This is used by the account API whenever the privacy settings are changed. If you make a change to blist.xml using one of the functions in the buddy list API, then the buddy list is saved automatically, so you should not need to call this.

blist_set_ui

Set the UI implementation of the buddy list.

blist_set_visible

Hides or unhides the buddy list.

blist_show

Shows the buddy list, creating a new one if necessary.

blist_uninit

Uninitializes the buddy list subsystem.

blist_update_buddies_cache

Updates the buddies hash table when a buddy has been renamed. This only updates the cache, the caller is responsible for the actual renaming of the buddy after updating the cache.

blist_update_groups_cache

Updates the groups hash table when a group has been renamed. This only updates the cache, the caller is responsible for the actual renaming of the group after updating the cache.

blist_update_node

Update a node in the buddy list in the UI.

blist_walk

Walks the buddy list and calls the appropriate function for each node. If a callback function is omitted iteration will continue without it.

cache_dir

Returns the purple cache directory according to XDG Base Directory Specification. This is usually $HOME/.cache/purple. If custom user dir was specified then this is cache sub-directory of DIR argument passed to -c option.

cmd_do_command

Do a command.

cmd_execute

Execute a specific command.

cmd_help

Get the help string for a command.

cmd_list

List registered commands.

cmd_register

Register a new command with the core.

cmd_unregister

Unregister a command with the core.

cmds_get_handle

Get the handle for the commands API.

cmds_init

Initialize the commands subsystem.

cmds_uninit

Uninitialize the commands subsystem.

config_dir

Returns the purple configuration directory according to XDG Base Directory Specification. This is usually $HOME/.config/purple. If custom user dir was specified then this is config sub-directory of DIR argument passed to -c option.

connections_disconnect_all

Disconnects from all connections.

connections_get_all

Returns a list of all active connections. This does not include connections that are in the process of connecting.

connections_get_handle

Returns the handle to the connections subsystem.

connections_get_ui_ops

Returns the UI operations structure used for connections.

connections_init

Initializes the connections subsystem.

connections_is_online

Checks if at least one account is online.

connections_set_ui_ops

Sets the UI operations structure to be used for connections.

connections_uninit

Uninitializes the connections subsystem.

conversations_get_handle

Returns the conversation subsystem handle.

conversations_get_ui_ops

Gets the default conversation UI operations structure.

conversations_init

Initializes the conversation subsystem.

conversations_set_ui_ops

Sets the default conversation UI operations structure.

conversations_uninit

Uninitializes the conversation subsystem.

data_dir

Returns the purple data directory according to XDG Base Directory Specification. This is usually $HOME/.local/share/purple. If custom user dir was specified then this is data sub-directory of DIR argument passed to -c option.

debug

Outputs debug information.

debug_error

Outputs error level debug information.

debug_fatal

Outputs fatal error level debug information.

debug_info

Outputs info level debug information.

debug_init

Initializes the debug subsystem.

debug_is_unsafe

Check if unsafe debugging is enabled. Defaults to FALSE.

debug_is_verbose

Check if verbose logging is enabled.

debug_misc

Outputs misc. level debug information.

debug_set_unsafe

Enable or disable unsafe debugging. This ordinarily should only be called by purple_debug_init(), but there are cases where this can be useful for plugins.

debug_set_verbose

Enable or disable verbose debugging. This ordinarily should only be called by purple_debug_init(), but there are cases where this can be useful for plugins.

debug_warning

Outputs warning level debug information.

email_is_valid

Checks if the given email address is syntactically valid.

escape_filename

Escapes filesystem-unfriendly characters from a filename.

gdk_pixbuf_from_data

Create a GdkPixbuf from a chunk of image data.

gdk_pixbuf_from_image

Create a GdkPixbuf from a PurpleImage.

gdk_pixbuf_is_opaque

Returns TRUE if the GdkPixbuf is opaque, as determined by no alpha at any of the edge pixels.

gdk_pixbuf_make_round

Rounds the corners of a GdkPixbuf in place.

gdk_pixbuf_new_from_file

Helper function that calls gdk_pixbuf_new_from_file() and checks both the return code and the GError and returns NULL if either one failed.

gdk_pixbuf_new_from_file_at_size

Helper function that calls gdk_pixbuf_new_from_file_at_size() and checks both the return code and the GError and returns NULL if either one failed.

get_core

This is used to connect to core signals.

get_option_group

Returns a GOptionGroup for the commandline arguments recognized by LibPurple. You should add this option group to your GOptionContext with g_option_context_add_group(), if you are using g_option_context_parse() to parse your commandline arguments.

get_resource
gio_graceful_close

Closes input, output, stream. If there are pending operations, it asynchronously waits for the operations to finish before closing the arguments. Ensure the Gio callbacks can safely handle this being done asynchronously.

gio_socket_client_new

A helper function to simplify creating a GSocketClient. It’s intended to be used in protocol plugins.

global_proxy_get_info

Returns purple’s global proxy information.

global_proxy_set_info

Set purple’s global proxy information.

got_protocol_handler_uri
home_dir

Gets the user’s home directory.

idle_get_ui

Gets the current idle reporter.

idle_init

Initializes the idle system.

idle_set

Fake our idle time by setting the time at which our accounts purportedly became idle. This is used by the I’dle Mak’er plugin.

idle_set_ui

Sets the user interface idle reporter.

idle_touch

Touch our idle tracker. This signifies that the user is ‘active’. The conversation code calls this when the user sends an IM, for example.

idle_uninit

Uninitializes the idle system.

input_add

Adds an input handler.

input_pipe

Creates a pipe - an unidirectional data channel that can be used for interprocess communication.

markup_get_tag_name

Returns a newly allocated string containing the name of the tag located at “tag”. Tag is expected to point to a ‘<’, and contain a ‘>’ sometime after that. If there is no ‘>’ and the string is not NUL terminated, this function can be expected to segfault.

markup_html_to_xhtml

Converts HTML markup to XHTML.

markup_linkify

Adds the necessary HTML code to turn URIs into HTML links in a string.

markup_slice

Returns a newly allocated substring of the HTML UTF-8 string “str”. The markup is preserved such that the substring will have the same formatting as original string, even though some tags may have been opened before “x”, or may close after “y”. All open tags are closed at the end of the returned string, in the proper order.

markup_strip_html

Strips HTML tags from a string.

markup_unescape_entity

Returns a constant string of the character representation of the HTML entity pointed to by text. For example, purple_markup_unescape_entity(“&amp;”) will return “&”. The text variable is expected to point to an ‘&’, the first character of the entity. If given an unrecognized entity, the function returns NULL.

marshal_BOOLEAN__POINTER

A purple marshaller function for use with signals with a single pointer argument and returns a boolean.

marshal_BOOLEAN__POINTER_BOOLEAN

A purple marshaller function for use with signals with a pointer and boolean argument and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER

A purple marshaller function for use with signals with two pointer arguments and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER_POINTER

A purple marshaller function for use with signals with three pointer arguments and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with four pointer arguments and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with five pointer arguments and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER_POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with six pointer arguments and returns a boolean.

marshal_BOOLEAN__POINTER_POINTER_UINT

A purple marshaller function for use with signals with two pointer and one unsigned integer arguments and returns a boolean.

marshal_INT__POINTER_POINTER_POINTER

A purple marshaller function for use with signals with three pointer arguments and returns an integer.

marshal_INT__POINTER_POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with five pointer arguments and returns an integer.

marshal_VOID

A purple marshaller function for use with signals with no arguments.

marshal_VOID__POINTER

A purple marshaller function for use with signals with a single pointer argument.

marshal_VOID__POINTER_INT_INT

A purple marshaller function for use with signals with a pointer and two integer arguments.

marshal_VOID__POINTER_INT_POINTER

A purple marshaller function for use with signals with a pointer, an integer, and then another pointer argument.

marshal_VOID__POINTER_POINTER

A purple marshaller function for use with signals with two pointer arguments.

marshal_VOID__POINTER_POINTER_POINTER

A purple marshaller function for use with signals with three pointer arguments.

marshal_VOID__POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with four pointer arguments.

marshal_VOID__POINTER_POINTER_POINTER_POINTER_POINTER

A purple marshaller function for use with signals with five pointer arguments.

marshal_VOID__POINTER_POINTER_POINTER_POINTER_UINT

A purple marshaller function for use with signals with four pointer and one unsigned integer arguments.

marshal_VOID__POINTER_POINTER_POINTER_UINT

A purple marshaller function for use with signals with three pointer and one unsigned integer arguments.

marshal_VOID__POINTER_POINTER_POINTER_UINT_UINT

A purple marshaller function for use with signals with three pointer and two unsigned integer arguments.

marshal_VOID__POINTER_POINTER_UINT

A purple marshaller function for use with signals with two pointers and an unsigned integer argument.

marshal_VOID__POINTER_POINTER_UINT_UINT

A purple marshaller function for use with signals with two pointers and two unsigned integer arguments.

marshal_VOID__POINTER_UINT

A purple marshaller function for use with signals with a pointer and an unsigned integer argument.

marshal_VOID__POINTER_UINT_UINT

A purple marshaller function for use with signals with a pointer and two unsigned integer arguments.

menu_copy

Creates a full copy of model as a new GMenu. If model was not a GMenu instance, any additional functionality will be lost.

menu_populate_dynamic_targets

Updates menu by adding a target property when an item with an attribute named “dynamic-target” is found.

menu_populate_dynamic_targetsv

Updates menu by adding a target property when an item with an attribute named “dynamic-target” is found.

menu_walk

Recursively calls func for each item in model and all of its children.

network_discover_my_ip

Discovers the IP address that should be used anywhere a public IP addresses is needed (listening for an incoming file transfer, etc).

network_force_online

Makes purple_network_is_available() always return TRUE.

network_get_my_ip_from_gio

Returns the IP address that should be used anywhere a public IP address is needed (listening for an incoming file transfer, etc).

network_get_public_ip

Returns the IP address of the local system set in preferences.

network_get_stun_ip

Get the IP address of the STUN server as a string representation.

network_get_turn_ip

Get the IP address of the TURN server as a string representation.

network_init

Initializes the network subsystem.

network_is_available

Detects if there is an available network connection.

network_set_public_ip

Sets the IP address of the local system in preferences. This is the IP address that should be used for incoming connections (file transfer, direct IM, etc.) and should therefore be publicly accessible.

network_set_stun_server

Update the STUN server IP given the host name Will result in a DNS query being executed asynchronous.

network_set_turn_server

Update the TURN server IP given the host name Will result in a DNS query being executed asynchronous.

network_uninit

Shuts down the network subsystem.

normalize

Normalizes a string, so that it is suitable for comparison.

normalize_nocase

Normalizes a string, so that it is suitable for comparison.

notify_close

Closes a notification.

notify_close_with_handle

Closes all notifications registered with the specified handle.

notify_formatted

Displays a notification with formatted text.

notify_get_ui_ops

Returns the UI operations structure to be used when displaying a notification.

notify_init

Initializes the notify subsystem.

notify_is_valid_ui_handle

Checks, if passed UI handle is valid.

notify_message

Displays a notification message to the user.

notify_searchresult_column_get_title

Returns the title of the column.

notify_searchresult_column_is_visible

Returns whether or not a search result column is visible.

notify_searchresult_column_set_visible

Sets whether or not a search result column is visible.

notify_searchresults

Displays results from a buddy search. This can be, for example, a window with a list of all found buddies, where you are given the option of adding buddies to your buddy list.

notify_searchresults_button_add

Adds a stock button that will be displayed in the search results dialog.

notify_searchresults_button_add_labeled

Adds a plain labelled button that will be displayed in the search results dialog.

notify_searchresults_column_add

Adds a new column to the search result object.

notify_searchresults_column_new

Returns a newly created search result column object. The column defaults to being visible.

notify_searchresults_free

Frees a PurpleNotifySearchResults object.

notify_searchresults_new

Returns a newly created search results object.

notify_searchresults_new_rows

Replace old rows with the new. Reuse an existing window.

notify_searchresults_row_add

Adds a new row of the results to the search results object.

notify_set_ui_ops

Sets the UI operations structure to be used when displaying a notification.

notify_uninit

Uninitializes the notify subsystem.

notify_uri

Opens a URI or somehow presents it to the user.

notify_userinfo

Displays user information with formatted text, passing information giving the connection and username from which the user information came.

plugin_disable

Disable a plugin.

plugin_get_dependent_plugins

Returns a list of plugins that depend on a particular plugin.

plugin_get_info

Returns a plugin’s PurplePluginInfo instance.

plugin_is_internal

Returns whether a plugin is an internal plugin. Internal plugins provide required additional functionality to the libpurple core. These plugins must not be shown in plugin lists. Examples of such plugins are in-tree protocol plugins, loaders etc.

plugin_is_loaded

Returns whether or not a plugin is currently loaded.

plugin_load

Attempts to load a plugin.

plugin_unload

Unloads the specified plugin.

plugins_add_search_path

Add a new directory to search for plugins.

plugins_find_all

Returns a list of all plugins, whether loaded or not.

plugins_find_by_filename

Finds a plugin with the specified filename (filename with a path).

plugins_find_plugin

Finds a plugin with the specified plugin ID.

plugins_get_loaded

Returns a list of all loaded plugins.

plugins_init

Initializes the plugin subsystem.

plugins_load_saved

Attempts to load all the plugins in the specified preference key that were loaded when purple last quit.

plugins_refresh

Forces a refresh of all plugins found in the search paths, and loads plugins that are to be auto-loaded.

plugins_save_loaded

Saves the list of loaded plugins to the specified preference key. Plugins that are set to auto-load are not saved.

plugins_uninit

Uninitializes the plugin subsystem.

pmp_create_map

Remove the NAT-PMP mapping for a specified type on a specified port.

pmp_destroy_map

Remove the NAT-PMP mapping for a specified type on a specified port.

pmp_get_public_ip
pmp_init

Initialize nat-pmp.

prefs_add_bool

Add a new boolean pref.

prefs_add_int

Add a new integer pref.

prefs_add_none

Add a new typeless pref.

prefs_add_path

Add a new path pref.

prefs_add_path_list

Add a new path list pref.

prefs_add_string

Add a new string pref.

prefs_add_string_list

Add a new string list pref.

prefs_connect_callback

Add a callback to a pref (and its children)

prefs_destroy

Remove all prefs.

prefs_disconnect_by_handle

Remove all pref callbacks by handle.

prefs_disconnect_callback

Remove a callback to a pref.

prefs_exists

Check if a pref exists.

prefs_get_bool

Get boolean pref value.

prefs_get_children_names

Returns a list of children for a pref.

prefs_get_handle

Returns the prefs subsystem handle.

prefs_get_int

Get integer pref value.

prefs_get_path

Get path pref value.

prefs_get_path_list

Get path list pref value.

prefs_get_pref_type

Get pref type.

prefs_get_string

Get string pref value.

prefs_get_string_list

Get string list pref value.

prefs_init

Initialize core prefs.

prefs_load

Read preferences.

prefs_remove

Remove a pref.

prefs_rename

Rename a pref.

prefs_rename_boolean_toggle

Rename a boolean pref, toggling it’s value.

prefs_set_bool

Set boolean pref value.

prefs_set_int

Set integer pref value.

prefs_set_path

Set path pref value.

prefs_set_path_list

Set path list pref value.

prefs_set_string

Set string pref value.

prefs_set_string_list

Set string list pref value.

prefs_trigger_callback

Trigger callbacks as if the pref changed.

prefs_trigger_callback_object

Trigger callbacks as if the pref changed, taking a PurplePrefCallbackData instead of a name.

prefs_uninit

Uninitializes the prefs subsystem.

primitive_get_id_from_type

Lookup the id of a primitive status type based on the type. This ID is a unique plain-text name of the status, without spaces.

primitive_get_name_from_type

Lookup the name of a primitive status type based on the type. This name is the plain-English name of the status type. It is usually one or two words.

primitive_get_type_from_id

Lookup the value of a primitive status type based on the id. The ID is a unique plain-text name of the status, without spaces.

proxy_get_handle

Returns the proxy subsystem handle.

proxy_get_proxy_resolver

Returns a GProxyResolver capable of resolving which proxy to use for this account, if any. This object can be given to a GSocketClient for automatic proxy handling or can be used directly if desired.

proxy_get_setup

Returns configuration of a proxy.

proxy_init

Initializes the proxy subsystem.

proxy_uninit

Uninitializes the proxy subsystem.

request_action

Prompts the user for an action.

request_action_varg

va_list version of purple_request_action(); see its documentation.

request_add_close_notify

Adds a function called when notification dialog is closed.

request_choice

Prompts the user for multiple-choice input.

request_choice_varg

va_list version of purple_request_choice(); see its documentation.

request_close

Closes a request.

request_close_with_handle

Closes all requests registered with the specified handle.

request_cpar_from_account

Creates new parameters set initially bound with the PurpleAccount.

request_cpar_from_connection

Creates new parameters set initially bound with the PurpleConnection.

request_cpar_from_conversation

Creates new parameters set initially bound with the PurpleConversation.

request_cpar_get_account

Gets the PurpleAccount associated with the request.

request_cpar_get_conversation

Gets the PurpleConversation associated with the request.

request_cpar_get_custom_icon

Gets the custom icon associated with the request.

request_cpar_get_extra_actions

Gets extra actions for the PurpleRequestFields dialog.

request_cpar_get_help_cb

Gets the callback for the Help button.

request_cpar_get_icon

Gets the icon associated with the request.

request_cpar_get_parent_from

Gets the parent “donor” for this dialog.

request_cpar_is_compact

Gets dialog display mode.

request_cpar_is_html

Checks, if the text passed to the request is HTML.

request_cpar_new

Creates new parameters set for the request, which may or may not be used by the UI to display the request.

request_cpar_ref

Increases the reference count on the parameters set.

request_cpar_set_account

Sets the PurpleAccount associated with the request, or NULL, if none is.

request_cpar_set_compact

Sets dialog display mode to compact or default.

request_cpar_set_conversation

Sets the PurpleConversation associated with the request, or NULL, if none is.

request_cpar_set_custom_icon

Sets the custom icon associated with the request.

request_cpar_set_extra_actions

Sets extra actions for the PurpleRequestFields dialog.

request_cpar_set_help_cb

Sets the callback for the Help button.

request_cpar_set_html

Switches the request text to be HTML or not.

request_cpar_set_icon

Sets the icon associated with the request.

request_cpar_set_parent_from

Sets the same parent window for this dialog, as the parent of specified Notify API or Request API dialog UI handle.

request_cpar_unref

Decreases the reference count on the parameters set.

request_fields

Displays groups of fields for the user to fill in.

request_file

Displays a file selector request dialog. Returns the selected filename to the callback. Can be used for either opening a file or saving a file.

request_folder

Displays a folder select dialog. Returns the selected filename to the callback.

request_get_ui_ops

Returns the UI operations structure to be used when displaying a request.

request_input

Prompts the user for text input.

request_is_valid_ui_handle

Checks, if passed UI handle is valid.

request_set_ui_ops

Sets the UI operations structure to be used when displaying a request.

request_wait

Displays a “please wait” dialog.

request_wait_progress

Notifies the “please wait” dialog about progress has been made.

request_wait_pulse

Notifies the “please wait” dialog that some progress has been made, but you don’t know how much.

running_gnome

Check if running GNOME.

running_kde

Check if running KDE.

savedstatuses_get_all

Returns all saved statuses.

savedstatuses_get_handle

Get the handle for the status subsystem.

savedstatuses_get_popular

Returns the n most popular saved statuses. “Popularity” is determined by when the last time a saved_status was used and how many times it has been used. Transient statuses without messages are not included in the list.

savedstatuses_init

Initializes the status subsystem.

savedstatuses_uninit

Uninitializes the status subsystem.

serv_alias_buddy

Save/store buddy’s alias on server list/roster.

serv_chat_invite

Invite a user to join a chat.

serv_chat_leave

Called when the user requests leaving a chat.

serv_chat_send

Send a message to a chat.

serv_got_alias

Protocol should call this function when it retrieves an alias form the server.

serv_got_chat_in

Called by a protocol when a message has been received in a chat.

serv_got_chat_invite

Called by a protocol when an account is invited into a chat.

serv_got_chat_left

Called by a protocol when an account has left a chat.

serv_got_im

This function is called by the protocol when it receives an IM message.

serv_got_join_chat_failed

Called by a protocol when an attempt to join a chat via purple_serv_join_chat() fails.

serv_got_joined_chat

Called by a protocol when an account has joined a chat.

serv_got_private_alias

A protocol should call this when it retrieves a private alias from the server. Private aliases are the aliases the user sets, while public aliases are the aliases or display names that buddies set for themselves.

serv_got_typing

Receive a typing message from a remote user. Either PURPLE_IM_TYPING or PURPLE_IM_TYPED. If the user has stopped typing then use purple_serv_got_typing_stopped instead.

serv_got_typing_stopped

Called from a protocol when it has received a type stopped.

serv_join_chat
serv_move_buddy

Move a buddy from one group to another on server.

serv_reject_chat
serv_send_file

Send a filename to a given contact.

serv_send_im

Sends the message to the user through the required protocol.

serv_send_typing

Send a typing message to a given user over a given connection.

signal_connect

Connects a signal handler to a signal for a particular object. (Its priority defaults to 0, aka #PURPLE_SIGNAL_PRIORITY_DEFAULT.)

signal_connect_priority

Connects a signal handler to a signal for a particular object.

signal_disconnect

Disconnects a signal handler from a signal on an object.

signal_emit

Emits a signal.

signal_emit_return_1

Emits a signal and returns the first non-NULL return value.

signal_register

Registers a signal in an instance.

signal_unregister

Unregisters a signal in an instance.

signals_disconnect_by_handle

Removes all callbacks associated with a receiver handle.

signals_init

Initializes the signals subsystem.

signals_uninit

Uninitializes the signals subsystem.

signals_unregister_by_instance

Unregisters all signals in an instance.

socket_listener_add_any_inet_port

Listens for TCP connections on any available port number for both IPv6 and IPv4 (if each is available). This is a simple wrapper around g_socket_listener_add_any_inet_port(), except if the user specified a port range in the settings, than a port will be chosen from that range.

sqlite3_get_schema_version

Attempts to read the result of PRAGMA user_version which this API uses to store the schema version.

sqlite3_run_migrations_from_resources

Runs the given migrations in the order they are given. The index of each migration plus 1 is assumed to be the version number of the migration, which means that you can not change the order of the migrations. The reasoning for the addition of 1 is because PRAGMA user_version defaults to 0.

sqlite3_run_migrations_from_strings

Runs the given migrations in the order they are given. The index of each migration plus 1 is assumed is to be the version number of the migration, which means that you can not change the order of the migrations. The reasoning for the addition of 1 is because PRAGMA user_version defaults to 0.

statuses_get_handle

Get the handle for the status subsystem.

statuses_init

Initializes the status subsystem.

statuses_uninit

Uninitializes the status subsystem.

str_has_caseprefix

Compares two strings to see if the first contains the second as a proper case-insensitive prefix.

str_seconds_to_string

Converts seconds into a human-readable form.

str_strip_char

Strips all instances of the given character from the given string. The string is modified in place. This is useful for stripping new line characters, for example.

str_wipe

Fills a NUL-terminated string with zeros and frees it.

strdup_withhtml

Duplicates a string and replaces all newline characters from the source string with HTML linebreaks.

strreplace

Given a string, this replaces one substring with another and returns a newly allocated string.

stun_discover

Starts a NAT discovery. It returns a PurpleStunNatDiscovery if the discovery is already done. Otherwise the callback is called when the discovery is over and NULL is returned.

stun_init

Initializes the STUN API. This is called by libpurple and you should not be calling it yourself.

tag_parse

Splits a tag into its name and value parts.

text_strip_mnemonic

Removes the underscore characters from a string used identify the mnemonic character.

unescape_html

Unescapes HTML entities to their literal characters and converts “<br>” to “\n”. See purple_unescape_text() for more details.

unescape_text

Unescapes HTML entities to their literal characters in the text. For example “&amp;” is replaced by ‘&’ and so on. Also converts numerical entities (e.g. “&#38;” is also ‘&’).

url_encode

Encodes a URL into an escaped string.

utf8_has_word

Case insensitive search for a word in a string. The needle string must be contained in the haystack string and not be immediately preceded or immediately followed by another alphanumeric character.

utf8_ncr_decode

Given a string, this replaces any numerical character references in that string with the corresponding actual utf-8 substrings, and returns a newly allocated string.

utf8_ncr_encode

Given a string, this replaces any utf-8 substrings in that string with the corresponding numerical character reference, and returns a newly allocated string.

utf8_strcasecmp

Compares two UTF-8 strings case-insensitively. This comparison is more expensive than a simple g_utf8_collate() comparison because it calls g_utf8_casefold() on each string, which allocates new strings.

utf8_strip_unprintables

Removes unprintable characters from a UTF-8 string. These characters (in particular low-ASCII characters) are invalid in XML 1.0 and thus are not allowed in XMPP and are rejected by libxml2 by default.

utf8_try_convert

Attempts to convert a string to UTF-8 from an unknown encoding.

util_chrreplace

Given a string, this replaces all instances of one character with another. This happens inline (the original string IS modified).

util_format_song_info

Format song information.

util_init

Initializes the utility subsystem.

util_read_xml_from_cache_file

Read the contents of a given file and parse the results into an PurpleXmlNode tree structure. This is intended to be used to read Purple’s cache xml files (xmpp-caps.xml, etc.)

util_read_xml_from_config_file

Read the contents of a given file and parse the results into an PurpleXmlNode tree structure. This is intended to be used to read Purple’s config xml files (prefs.xml, pounces.xml, etc.)

util_read_xml_from_data_file

Read the contents of a given file and parse the results into an PurpleXmlNode tree structure. This is intended to be used to read Purple’s cache xml files (accounts.xml, etc.)

util_set_current_song

Set the appropriate presence values for the currently playing song.

util_set_user_dir

Define a custom purple settings directory, overriding the default (user’s home directory/.purple)

util_uninit

Uninitializes the util subsystem.

util_write_data_to_cache_file

Write a string of data to a file of the given name in the Purple cache directory ($HOME/.cache/purple by default).

util_write_data_to_config_file

Write a string of data to a file of the given name in the Purple config directory ($HOME/.config/purple by default).

util_write_data_to_data_file

Write a string of data to a file of the given name in the Purple data directory ($HOME/.local/share/purple by default).

validate

Checks, if a string is valid.

value_dup

Duplicates a GValue.

value_free

Frees a GValue.

value_new

Creates a new GValue of the specified type.

version_check

Checks that the libpurple version is compatible with the requested version.

xfers_get_all

Returns all xfers.

xfers_get_handle

Returns the handle to the file transfer subsystem.

xfers_get_ui_ops

Returns the UI operations structure to be used in all purple file transfers.

xfers_init

Initializes the file transfer subsystem.

xfers_set_ui_ops

Sets the UI operations structure to be used in all purple file transfers.

xfers_uninit

Uninitializes the file transfer subsystem.

Function Macros

BLIST_NODE_NAME

Gets the name of n.

notify_error

A wrapper for purple_notify_message() that displays an error message.

notify_info

A wrapper for purple_notify_message() that displays an information message.

notify_warning

A wrapper for purple_notify_message() that displays a warning message.

PLUGIN
PLUGIN_ABI_MAJOR_VERSION

Extracts the purple major version from abi.

PLUGIN_ABI_MINOR_VERSION

Extracts the purple minor version from abi.

PLUGIN_ABI_VERSION

Packs major and minor into an integer to be used as an abi version for gplugin.

PROTOCOL_IMPLEMENTS
request_accept_cancel

A wrapper for purple_request_action() that uses Accept and Cancel buttons.

request_ok_cancel

A wrapper for purple_request_action() that uses OK and Cancel buttons.

request_yes_no

A wrapper for purple_request_action() that uses Yes and No buttons.

VERSION_CHECK

Checks the version of libpurple being compiled against. See

purple_version_check for a runtime check.

Constants

DEFAULT_ACTION_NONE
EXTRA_VERSION

The “extra” part of the version number if anything. Typical values are “devel”, “beta1”, “rc2”, etc.

IMAGE_STORE_PROTOCOL

A global URI prefix for images stored in this subsystem.

MAJOR_VERSION

The major version of the running libpurple.

MENU_ATTRIBUTE_DYNAMIC_TARGET
MICRO_VERSION

The micro version of the running libpurple.

MINOR_VERSION

The minor version of the running libpurple.

MOOD_COMMENT
MOOD_NAME
PMP_LIFETIME
SIGNAL_PRIORITY_DEFAULT

The priority of a signal connected using purple_signal_connect().

SIGNAL_PRIORITY_HIGHEST

The largest signal priority; signals with this priority will be called last. (This is highest as in numerical value, not as in order of importance.)

SIGNAL_PRIORITY_LOWEST

The smallest signal priority; signals with this priority will be called first. (This is lowest as in numerical value, not as in order of importance.)

TUNE_ALBUM

A constant for a status attribute that represents the album of a song.

TUNE_ARTIST

A constant for a status attribute that represents the artists of a song.

TUNE_COMMENT

A constant for a status attribute that represents the comment of a song.

TUNE_FULL

A constant for a status attribute that represents the full details of a song.

TUNE_GENRE

A constant for a status attribute that represents the genre of a song.

TUNE_TIME

A constant for a status attribute that represents the duration of a song.

TUNE_TITLE

A constant for a status attribute that represents the title of a song.

TUNE_TRACK

A constant for a status attribute that represents the track number of a song.

TUNE_URL

A constant for a status attribute that represents the url of a song.

TUNE_YEAR

A constant for a status attribute that represents the release year of a song.

VERSION

The entire version as a string.