aboutsummaryrefslogtreecommitdiffstats
path: root/facebook/facebook.c
Commit message (Collapse)AuthorAgeLines
* Add "tweak" hidden setting, does nothing for now.dequis2017-07-07-0/+3
|
* Handle new style topic/groupchat membership eventsdequis2017-02-24-3/+9
| | | | | | | | | | | Looks like the mercury topics were deprecated and instead we get these: * deltaThreadName * deltaParticipantsAddedToGroupThread * deltaParticipantLeftGroupThread Also slightly modified the handlers on the bitlbee side to add users directly without requiring a thread fetch, and to show a kick message
* Use FetchContactsDeltaQuery for contact syncdequis2017-01-08-23/+38
| | | | | | | | | | | | | | This has a number of benefits: - Most of the time the contact sync reply will be empty - We can do contact sync more frequently (It's 5 mins now, was 30) - Figuring out what contacts were added or removed is much simpler and less likely to get things wrong. - Non-friends are no longer accidentally removed because there's no need to compare contact lists - On accounts with lots of friends this gets rid of one source of CPU usage spikes - Less load for facebook's servers (lol)
* Refactor, split off sync-contacts timeout code from fb_cb_api_contactsdequis2017-01-07-13/+20
|
* Don't disconnect when trying to join a chat after being kickeddequis2017-01-07-0/+31
| | | | | | This replaces a subset of "Failed to parse thread information" (the ones that aren't really a problem parsing) with "You have been removed from this chat" appearing in the relevant chat window.
* Refactor, split chat topic string generation to a separate functiondequis2017-01-07-19/+30
|
* Added support for the new bitlbee plugin informationdequis2016-06-02-0/+21
| | | | See bitlbee/bitlbee@d28fe1c.
* Prevent disconnections on 509 errors, "Invalid attachment id"dequis2016-06-02-1/+4
| | | | | | | | | I'm still not sure about the origin of these errors (I suspect it's a race condition between servers), but it's going to be fixed properly in the future when the sync protocol is updated and doing HTTP requests to get the attachment URL is no longer required (newer orca versions only do HTTP requests to get the url of file attachments, everything else is included in the MQTT stream)
* Consistency changes for 69b90b5jgeboski2016-03-29-25/+28
|
* Mark as read on reply, mark as read only when availableMarius Halden2016-03-29-7/+56
| | | | | | | | | | The set `mark_read` now accepts `available` in addition to `true` and `false`. When `mark_read` is set to `available` it will only mark messages read when the user is not marked as away/invisible. The set `mark_read_reply` was added, when this is set to `true` any unread messages will be marked as read when the user replies them (assuming they where received by bitlbee).
* Properly initialize the bee_user datajgeboski2016-03-10-2/+16
| | | | | This is mainly for sanity and consistency as the bee_user should be zeroed.
* Updated copyright dates for 2016jgeboski2016-01-15-1/+1
|
* Refactored the fbchats printingjgeboski2016-01-14-25/+14
|
* facebook: fixed a GCC-5 warningjgeboski2015-12-31-1/+1
|
* facebook: allow the 'group_chat_open' set to be assigned to 'all'jgeboski2015-12-31-51/+71
| | | | | | | | | | | | This adds more functionality to the `group_chat_open` set, which would only allow added group chats to be opened automatically. With this new set value of 'all', any group chat will be automatically opened with an incoming message. Value overview: - false: never open group chats automatically - true: open added group chats automatically - all: always open group chats automatically
* Preserve the timestamp on incoming messagesjgeboski2015-12-26-4/+5
|
* Coding style consistenciesjgeboski2015-12-24-4/+4
|
* fb_channel_join: add a null check for the "room" channel settingdequis2015-11-01-0/+5
| | | | | | Control channels never have a room setting, so joining to &facebook and trying to fbjoin a channel would result in a null pointer dereference in the next line (FB_ID_TO_STR)
* Show self-messages when there's a compatible bitlbeedequis2015-09-20-3/+16
| | | | | | | | | | | | This feature is not yet in any stable bitlbee release, but it's designed to be backwards compatible: - Run time: Detects if the "self_messages" global setting exists. - Build time: sets OPT_SELFMESSAGE to 0 if it doesn't exist. In other words, if this is built against a bitlbee version that supports this feature, it will still run in anything 3.4+, and only display these messages in the newer ones.
* Handle any away status from bitlbee as 'invisible' for the serverdequis2015-09-15-0/+29
|
* facebook: implemented auto-joining for incoming group chat messagesjgeboski2015-09-13-17/+61
| | | | | | | | | This adds a setting, group_chat_open, which if set to true, will allow the plugin to open added channels upon an incoming message. This also addresses: - Improper message printing for root commands - The fbchats command not joining existing channels
* facebook: wait for the user added event after invitingjgeboski2015-09-13-1/+0
| | | | | | | Currently, as soon as a user is invited to a group chat, they are added to the group chat. In order to ensure the user is actually added, the plugin should wait for an already handled group chat event for the user being added.
* facebook: implemented group chat KICKingjgeboski2015-09-13-0/+16
|
* Change the default values of mark_read and show_unread to falsedequis2015-09-11-2/+2
|
* facebook: initialize the GLib type systemjgeboski2015-08-28-0/+4
|
* Implemented group chat topic change eventsjgeboski2015-08-25-1/+4
|
* Imported changes from purple-facebookjgeboski2015-08-24-666/+608
|
* Reset stoken when getting ERROR_QUEUE_NOT_FOUND, to create a new onedequis2015-04-03-0/+4
| | | | | | Simpler and more verbose version of my other patch which silently created a new queue - this will show up as a reconnection and should make it obvious if an infinite loop happens. jgeboski's idea, not mine.
* Updated copyright dates for 2015jgeboski2015-03-05-1/+1
|
* facebook: default to chat_type of room for persistencejgeboski2015-01-31-4/+21
| | | | | | | | | | | As of now, group chat channels do not persist after they are left. This is due in part to the channel not being of chat_type room. Furthermore, the account and room identifiers are not set on the channel. This issue becomes apparent when the plugin disconnects from the remote services for whatever reason, and the channel is not setup again. This issue was introduced in 06956d1.
* Migrated from OPT to BEE_USER flagsjgeboski2015-01-30-1/+1
| | | | | The compatibility flags of BEE_USER provided by OPT flags should not be used as they are deprecated.
* groupchat names can begin with # (it is then discarded)Alexandre `Zopieux` Macabies2015-01-24-1/+4
|
* facebook: create group chats directly with the fbjoin commandjgeboski2015-01-24-14/+71
| | | | | | | | | Currently, the plugin relies on the 'chat add' root command in order to create a new group chat. Aside from being an ugly hack, this prevents the plugin from being able to automatically join the bitlbee user into the newly created channel. In order to allow for automatic joining, the plugin should directly create the group chat, rather than relying on the "chat add" root command.
* facebook: allow root commands without an account identifierjgeboski2015-01-24-21/+75
| | | | | | | | | | | | | | Currently, all roots commands require an account identifier in order to operate. However, more times than not, there will only be one Facebook account per bitlbee user. The plugin should allow for the short handing of root commands, where the account identifier is negated when there is only one active Facebook account. This patch allows for users with only one active Facebook account to negate the account identifier. The negation of the account identifier is optional. If there is more than one active Facebook account, the root commands behave as they currently do, and require an account identifier.
* facebook: ensure the account is online with root commandsjgeboski2015-01-24-0/+5
| | | | | | | | Currently, it is just assumed that the account is online, however, this is not always the case. If one of the root commands attempts to act on an offline account, it will typically lead to a segmentation fault. To guard against this, an additional check must be added to ensure the account is actually online.
* Unconstify all GSListsjgeboski2015-01-17-12/+9
|
* Implemented group chatsjgeboski2015-01-16-13/+404
|
* Migrated to numeric facebook user identifiersjgeboski2015-01-15-10/+29
|
* Implemented typing notificationsjgeboski2015-01-15-1/+24
|
* Implemented presence states of contactsjgeboski2015-01-14-12/+30
|
* Implemented one-on-one messagingjgeboski2015-01-14-6/+35
|
* Implemented contacts list lookupjgeboski2015-01-14-5/+42
|
* Implemented initial MQTT interfacejgeboski2015-01-14-4/+40
|
* Implemented user authenticationjgeboski2015-01-03-3/+64
|
* Initial commitjgeboski2014-12-23-0/+268