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

[status-mobile-16457] Fix messages containing Giphy URLs not being sent #3821

Closed
wants to merge 40 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
ae7d509
[status-mobile-16457] Fix messages containing Giphy URLs not being sent
ibrkhalil Jul 29, 2023
ca8d6e8
Comments
ibrkhalil Jul 31, 2023
d7b07a4
Add fallback
ibrkhalil Jul 31, 2023
b528dd9
Replicate oembed standards
ibrkhalil Aug 1, 2023
ea469ef
Clean
ibrkhalil Aug 1, 2023
171a100
Cleanup
ibrkhalil Aug 1, 2023
6e79be1
Fix tests
ibrkhalil Aug 1, 2023
a49d3c3
Fix tests
ibrkhalil Aug 1, 2023
cc0a96c
Improvements
ibrkhalil Aug 1, 2023
9bbaf27
Missing return :)
ibrkhalil Aug 1, 2023
383cc29
Cleanup
ibrkhalil Aug 1, 2023
cc7fd08
clean
ibrkhalil Aug 1, 2023
cfb17e8
Remove Width and Height from Photo response
ibrkhalil Aug 1, 2023
cddf3fd
Refactors
ibrkhalil Aug 2, 2023
6fc794b
Clean
ibrkhalil Aug 2, 2023
616cdd5
Lint
ibrkhalil Aug 2, 2023
a2fb9f4
Use fetchThumbnail
ibrkhalil Aug 3, 2023
6bb4bba
Finale
ibrkhalil Aug 5, 2023
75dce69
Add case for tenor
ibrkhalil Aug 5, 2023
642621b
Replicate oembed standards
ibrkhalil Aug 1, 2023
53c0c80
Improvements
ibrkhalil Aug 1, 2023
3274cb5
Missing return :)
ibrkhalil Aug 1, 2023
80caa91
Cleanup
ibrkhalil Aug 1, 2023
1bdd124
clean
ibrkhalil Aug 1, 2023
5bfc12d
Use fetchThumbnail
ibrkhalil Aug 3, 2023
6161687
Replicate oembed standards
ibrkhalil Aug 1, 2023
2ae16f6
Clean
ibrkhalil Aug 1, 2023
c17c2c5
Cleanup
ibrkhalil Aug 1, 2023
4c23d32
Fix tests
ibrkhalil Aug 1, 2023
1039634
Fix tests
ibrkhalil Aug 1, 2023
62c7846
Improvements
ibrkhalil Aug 1, 2023
03a7327
Missing return :)
ibrkhalil Aug 1, 2023
3c816e1
Cleanup
ibrkhalil Aug 1, 2023
c51e045
clean
ibrkhalil Aug 1, 2023
9085414
Clean
ibrkhalil Aug 5, 2023
244742e
Clean
ibrkhalil Aug 5, 2023
ca14267
Pre generate
ibrkhalil Aug 7, 2023
56ba2f6
Add external url
ibrkhalil Aug 7, 2023
cd03e90
Clean
ibrkhalil Aug 7, 2023
b8317c6
Clean
ibrkhalil Aug 7, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 85 additions & 85 deletions appdatabase/migrations/bindata.go

Large diffs are not rendered by default.

108 changes: 54 additions & 54 deletions appdatabase/migrationsprevnodecfg/bindata.go

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions mailserver/migrations/bindata.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

26 changes: 13 additions & 13 deletions multiaccounts/migrations/bindata.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions protocol/anonmetrics/migrations/migrations.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

30 changes: 21 additions & 9 deletions protocol/common/message.go
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ type LinkPreviewThumbnail struct {
// Non-empty when the thumbnail is available via the media server, i.e. after
// the chat message is sent.
URL string `json:"url,omitempty"`
ExternalURL string `json:"external_url,omitempty"`
// Non-empty when the thumbnail payload needs to be shared with the client,
// but before it has been persisted.
DataURI string `json:"dataUri,omitempty"`
Expand Down Expand Up @@ -760,8 +761,8 @@ func (m *Message) LoadImage() error {

func isValidLinkPreviewForProto(preview LinkPreview) bool {
return preview.Title != "" && preview.URL != "" &&
((preview.Thumbnail.DataURI == "" && preview.Thumbnail.Width == 0 && preview.Thumbnail.Height == 0) ||
(preview.Thumbnail.DataURI != "" && preview.Thumbnail.Width > 0 && preview.Thumbnail.Height > 0))
((preview.Thumbnail.Width == 0 && preview.Thumbnail.Height == 0) ||
(preview.Thumbnail.Width > 0 && preview.Thumbnail.Height > 0))
}

// ConvertLinkPreviewsToProto expects previews to be correctly sent by the
Expand Down Expand Up @@ -790,13 +791,16 @@ func (m *Message) ConvertLinkPreviewsToProto() ([]*protobuf.UnfurledLink, error)
}
}

ThumbnailExternalURL := preview.Thumbnail.ExternalURL

ul := &protobuf.UnfurledLink{
Url: preview.URL,
Title: preview.Title,
Description: preview.Description,
ThumbnailWidth: uint32(preview.Thumbnail.Width),
ThumbnailHeight: uint32(preview.Thumbnail.Height),
ThumbnailPayload: payload,
Url: preview.URL,
Title: preview.Title,
Description: preview.Description,
ThumbnailWidth: uint32(preview.Thumbnail.Width),
ThumbnailHeight: uint32(preview.Thumbnail.Height),
ThumbnailPayload: payload,
ThumbnailExternalUrl: ThumbnailExternalURL,
}
unfurledLinks = append(unfurledLinks, ul)
}
Expand Down Expand Up @@ -829,10 +833,18 @@ func (m *Message) ConvertFromProtoToLinkPreviews(makeMediaServerURL func(msgID s
Title: link.Title,
URL: link.Url,
}

lp.Thumbnail.ExternalURL = link.ThumbnailExternalUrl

if lp.Thumbnail.ExternalURL != "" {
lp.Thumbnail.ExternalURL = link.ThumbnailExternalUrl
} else {
lp.Thumbnail.URL = makeMediaServerURL(m.ID, link.Url)
}

if payload := link.GetThumbnailPayload(); payload != nil {
lp.Thumbnail.Width = int(link.ThumbnailWidth)
lp.Thumbnail.Height = int(link.ThumbnailHeight)
lp.Thumbnail.URL = makeMediaServerURL(m.ID, link.Url)
}
previews = append(previews, lp)
}
Expand Down
1 change: 1 addition & 0 deletions protocol/common/message_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -144,6 +144,7 @@ func TestConvertLinkPreviewsToProto(t *testing.T) {
Height: 200,
URL: "http://localhost:9999",
DataURI: "data:image/png;base64,iVBORw0KGgoAAAANSUg=",
ExternalURL: "https://github.com",
},
},
},
Expand Down
Loading