Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Shared links sometimes generate attachment with message #183

Open
rollingonchrome opened this issue Feb 15, 2024 · 9 comments · May be fixed by #210
Open

Shared links sometimes generate attachment with message #183

rollingonchrome opened this issue Feb 15, 2024 · 9 comments · May be fixed by #210
Labels
bug Something isn't working

Comments

@rollingonchrome
Copy link

Links sent or received via iMessage using the BlueBubbles connector sometimes generate an attachment (see attached file) that contains the following message:

{"status":500,"message":"The server has encountered an error","error":{"type":"Server Error","message":"Attachment does not exist in disk!"}}

Note, that I added the .txt file extension so I could upload it.

42359206-E37B-4F29-8A48-2AF37E48522D.pluginPayloadAttachment.txt

@rollingonchrome rollingonchrome added the bug Something isn't working label Feb 15, 2024
@dltacube
Copy link
Collaborator

dltacube commented Mar 6, 2024

Any idea if this always happens or only w/ a specific type of attachment?

@dltacube
Copy link
Collaborator

dltacube commented Mar 6, 2024

Ignore what I previously wrote, I imagined it.

Do you know if this worked with a different bridge control + bridge combo? Or when we weren't running bridges and it was all in the cloud? I'm looking for any clues that a happy path might already exist and if not then it needs a parser. I collected raw data to get a sense of what a proper preview should look like so there's progress.

@dltacube
Copy link
Collaborator

dltacube commented Mar 6, 2024

Looks like there might be a flag in either the client or server code called ddScan. It is possible that crafting rich links was never implemented (talking to someone on their discord) so I'll start by looking at the bb config.

@joshuafhiggins
Copy link
Contributor

Is there any benefit to supporting rich links? Doesn't the Beeper/Element client make them look pretty anyway by loading them up on the clients themselves?

@joshuafhiggins
Copy link
Contributor

Looks like there might be a flag in either the client or server code called ddScan. It is possible that crafting rich links was never implemented (talking to someone on their discord) so I'll start by looking at the bb config.

dltacube, how far have you looked into this? It also seems that the BB connector never implemented it, there's a "TODO Richlinks" in api.go

@dltacube
Copy link
Collaborator

dltacube commented Apr 11, 2024

Looks like there might be a flag in either the client or server code called ddScan. It is possible that crafting rich links was never implemented (talking to someone on their discord) so I'll start by looking at the bb config.

dltacube, how far have you looked into this? It also seems that the BB connector never implemented it, there's a "TODO Richlinks" in api.go

Whatever I'm thinking about in terms of these features will need to be fleshed out on our end. I've dug deep into bbb's output using web sockets and honestly if you point to the problematic ones I'll tell you how they behave.

@joshuafhiggins
Copy link
Contributor

joshuafhiggins commented Apr 12, 2024

Whatever I'm thinking about in terms of these features will need to be fleshed out on our end. I've dug deep into bbb's output using web sockets and honestly if you point to the problematic ones I'll tell you how they behave.

Do you know what the UID values mean in the JSON for the payloadData object? Here's an example message:
data.json

Parsing this is a mess and the BB app implementation looks nothing like this is way simpiler but I have no idea how to get this JSON instead of what the server sent above:

"payloadData": {
          "type": 0,
          "urlData": [
               {
                    "imageMetadata": {
                         "size": "Size(0.0, 0.0)",
                         "URL": {
                              "NS.relative": "https://jsonformatter.curiousconcept.com/icons/jf/mstile-144x144.b0ef4bd01d6cb25ab71ae707ed7ac226.png"
                         }
                    },
                    "videoMetadata": null,
                    "iconMetadata": {
                         "size": "Size(0.0, 0.0)",
                         "URL": {
                              "NS.relative": "https://jsonformatter.curiousconcept.com/icons/jf/apple-touch-icon.g79xknzqx7c.png"
                         }
                    },
                    "itemType": "website",
                    "originalURL": {
                         "NS.relative": "https://jsonformatter.curiousconcept.com/#"
                    },
                    "URL": {
                         "NS.relative": "https://jsonformatter.curiousconcept.com/"
                    },
                    "title": "JSON Formatter & Validator",
                    "summary": "Format and validate JSON data so that it can easily be read by human beings.",
                    "siteName": null
               }
          ],
          "appData": null
     }
`

@austinrheald
Copy link

Whatever I'm thinking about in terms of these features will need to be fleshed out on our end. I've dug deep into bbb's output using web sockets and honestly if you point to the problematic ones I'll tell you how they behave.

Do you know what the UID values mean in the JSON for the payloadData object? Here's an example message: data.json

Parsing this is a mess and the BB app implementation looks nothing like this is way simpiler but I have no idea how to get this JSON instead of what the server sent above:

"payloadData": {
          "type": 0,
          "urlData": [
               {
                    "imageMetadata": {
                         "size": "Size(0.0, 0.0)",
                         "URL": {
                              "NS.relative": "https://jsonformatter.curiousconcept.com/icons/jf/mstile-144x144.b0ef4bd01d6cb25ab71ae707ed7ac226.png"
                         }
                    },
                    "videoMetadata": null,
                    "iconMetadata": {
                         "size": "Size(0.0, 0.0)",
                         "URL": {
                              "NS.relative": "https://jsonformatter.curiousconcept.com/icons/jf/apple-touch-icon.g79xknzqx7c.png"
                         }
                    },
                    "itemType": "website",
                    "originalURL": {
                         "NS.relative": "https://jsonformatter.curiousconcept.com/#"
                    },
                    "URL": {
                         "NS.relative": "https://jsonformatter.curiousconcept.com/"
                    },
                    "title": "JSON Formatter & Validator",
                    "summary": "Format and validate JSON data so that it can easily be read by human beings.",
                    "siteName": null
               }
          ],
          "appData": null
     }
`

@joshuafhiggins Did you ever get an answer to this or a fix for the issue? If not I'd be interested seeing where it left off, it's the one thing that's killin me with Beeper and iMessage

@joshuafhiggins
Copy link
Contributor

joshuafhiggins commented Oct 17, 2024

@joshuafhiggins Did you ever get an answer to this or a fix for the issue? If not I'd be interested seeing where it left off, it's the one thing that's killin me with Beeper and iMessage

Hey @austinrheald, I haven't been able to find time to pick up work on this. I still have the branch open on my fork of the repo here. I'd recommend reaching out on the BlueBubbles Discord server for an explanation for how the BB client parses the response from the server. If you can search for my messages about it you can try following up, they're very nice and were willing to explain it but I never reached out after.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Development

Successfully merging a pull request may close this issue.

4 participants