| Commit message (Collapse) | Author | Age | Lines |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes "Failed to parse thread information" errors when joining channels.
Facebook rolled a hotfix update today and they are requiring the same
user agent for HTTP requests too. As far as I can see the main affected
request is ThreadQuery.
Hopefully this also solves issues some a tiny minority of people were
still having with sync sequence ids.
|
|\| |
|
| |
| |
| |
| | |
Last commit was broken
|
| |
| |
| |
| |
| | |
Since it's used for different things and parameters are all wrong with
the newer query hash, but the seq id query doesn't use parameters.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Looks like this is what they use to discontinue older versions.
An empty user agent is treated as too old.
This fixes following error when sending messages:
This app version no longer supports messaging. To continue to send
and receive messages, please update your app to a newer version or
use the mobile web version of Facebook.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This hash represents a graphql query cached in the server. We were using
an old version of the hash that broke for some reason, possibly related
to the fact that fb messenger versions older than 5 are being
discontinued. For reference, the oldest parts of the plugin were written
when 4 was the latest version, most parts are updated to 33 or 38, and
the newest parts are based on 100 or so.
Thanks EionRobb for coming up with this fix so quickly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If glib is built with --enable-debug=yes, it will have G_ENABLE_DEBUG
set internally
This flag changes the g_marshal_value_peek_object() macro to use
g_value_get_object(), which performs sanity checks, instead of doing a
direct offset access.
The definition of our error signal was wrong, using a marshaller with
a GObject in the first parameter but setting the type of the GValue to
G_TYPE_ERROR. Since we have no marshaller for G_TYPE_ERROR, and that all
of those are functionally equivalent (and in fact use the exact same
code in non-debug builds), I went with POINTER for both sides.
The actual crash happened because of a g_return_val_if_fail() in the
sanity checks which made it return NULL after throwing a warning like
this:
g_value_get_object: assertion 'G_VALUE_HOLDS_OBJECT (value)' failed
This was reported by a gentoo user who had the debug use flag. Thanks!
|
| | |
|
| | |
|
| |
| |
| |
| | |
The server expects the tid parameter to be just the tid now.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
Those URLs seem to be generated when the Android share feature is used.
Fixes #97
|
| | |
|
| |
| |
| |
| |
| |
| | |
Because apparently that's a thing that happens (incoming delta with
added item saying "friendship_status": "CAN_REQUEST" instead of
"ARE_FRIENDS")
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
|
| |
| |
| |
| | |
And add the FetchContactsDeltaQuery one.
|
| | |
|
|\| |
|
| |
| |
| |
| |
| |
| | |
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.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Those are created by the "Marketplace" feature:
http://newsroom.fb.com/news/2016/10/introducing-marketplace
|
|\| |
|
| |
| |
| |
| | |
Shot in the dark to fix checkpoint issues, but had to be done anyway.
|
| |
| |
| |
| |
| |
| | |
New root command `fbmark` which takes a buddy, a channel or a chat index as
an argument. Any messages from this buddy or in this chat will be marked
as read when the command `fbmark` is used.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixes #89 (No matches for $.represented_profile.id)
Previously, in 4efa397, hugePictureUrl was made optional. Now someone
complains about represented_profile being missing, replaced with a null.
To be honest I'm worried about what kind of bug might be breaking things
so subtly on the server side, but well, it's not my job.
This will result in some friends with missing represented_profile not
being included in the contact list, because we're missing rather
essential information. But better than not being able to log in.
|
|\| |
|
| |
| |
| |
| |
| | |
Now it returns true if url1 is contained inside url2, or the other way
around. This helps when a message body is compared with a url.
|
| |
| |
| |
| | |
See bitlbee/bitlbee@d28fe1c.
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| |
| |
| |
| |
| |
| |
| |
| | |
Facebook seems to randomly send null in this field sometimes. It's not
very important so it can be made optional.
This includes moving the checksum code (which was previously duplicated)
to a separate function so that there's a single null check.
|
|\| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Mostly fixes bug #76
This is crappy and error prone, just like the rest of the duplicate
message handling code. It works, but it's going to get some echoes now
and then, particularly in quick moving groupchats.
I'm pretty sure this is a bug in the server, but the official clients
have much more elaborate deduplication built-in, so they won't notice.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Normally, bitlbee's ssl_handshake calls the callback with an error
status and calls ssl_disconnect().
In this plugin fb_mqtt_error(), calls fb_mqtt_close(), which called
ssl_disconnect() on priv->ssl.
This fix prevents that double ssl_disconnect() by setting priv->ssl to
null, so that fb_mqtt_close() cleans everything except that.
Fixes #82
|
|/ |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
| |
This fixes contact list fetching for accounts with more than 500
friends, which only got the first page of results. The previous method,
using graph_api_write_id, stopped working at some point.
|
|
|
|
|
| |
This is mainly for sanity and consistency as the bee_user should be
zeroed.
|
|
|
|
|
|
|
| |
There is a report of the 'oh' parameter missing from some of the icon
images, which is used as the checksum. The solution is to simply use
the URL itself as the checksum in the *rare* case the 'oh' parameter
is missing.
|
| |
|
| |
|
|
|
|
| |
It happens that < and > are special characters for gtk-doc.
|
|
|
|
|
|
| |
This fixes an improper GError propagation, which not is only incorrect,
but also has no effect. This ends up leading to the unsupported XMA
message being ignored without any notice to the user.
|