Return POST_EMBED_LINK for links that are not images nor og (#11723)
Этот коммит содержится в:
коммит произвёл
Ben Schumacher
родитель
5754ffc320
Коммит
a9ed8fab28
@@ -176,7 +176,10 @@ func (a *App) getEmbedForPost(post *model.Post, firstLink string, isNewPost bool
|
|||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil, nil
|
return &model.PostEmbed{
|
||||||
|
Type: model.POST_EMBED_LINK,
|
||||||
|
URL: firstLink,
|
||||||
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) getImagesForPost(post *model.Post, imageURLs []string, isNewPost bool) map[string]*model.PostImage {
|
func (a *App) getImagesForPost(post *model.Post, imageURLs []string, isNewPost bool) map[string]*model.PostImage {
|
||||||
|
|||||||
@@ -536,6 +536,13 @@ func TestGetEmbedForPost(t *testing.T) {
|
|||||||
|
|
||||||
w.Header().Set("Content-Type", "image/png")
|
w.Header().Set("Content-Type", "image/png")
|
||||||
w.Write(file)
|
w.Write(file)
|
||||||
|
} else if r.URL.Path == "/other" {
|
||||||
|
w.Header().Set("Content-Type", "text/html")
|
||||||
|
w.Write([]byte(`
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
</head>
|
||||||
|
</html>`))
|
||||||
} else {
|
} else {
|
||||||
t.Fatal("Invalid path", r.URL.Path)
|
t.Fatal("Invalid path", r.URL.Path)
|
||||||
}
|
}
|
||||||
@@ -544,6 +551,7 @@ func TestGetEmbedForPost(t *testing.T) {
|
|||||||
|
|
||||||
ogURL := server.URL + "/index.html"
|
ogURL := server.URL + "/index.html"
|
||||||
imageURL := server.URL + "/image.png"
|
imageURL := server.URL + "/image.png"
|
||||||
|
otherURL := server.URL + "/other"
|
||||||
|
|
||||||
t.Run("with link previews enabled", func(t *testing.T) {
|
t.Run("with link previews enabled", func(t *testing.T) {
|
||||||
th := Setup(t)
|
th := Setup(t)
|
||||||
@@ -593,6 +601,16 @@ func TestGetEmbedForPost(t *testing.T) {
|
|||||||
}, embed)
|
}, embed)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("should return a link embed", func(t *testing.T) {
|
||||||
|
embed, err := th.App.getEmbedForPost(&model.Post{}, otherURL, false)
|
||||||
|
|
||||||
|
assert.Equal(t, &model.PostEmbed{
|
||||||
|
Type: model.POST_EMBED_LINK,
|
||||||
|
URL: otherURL,
|
||||||
|
}, embed)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("with link previews disabled", func(t *testing.T) {
|
t.Run("with link previews disabled", func(t *testing.T) {
|
||||||
@@ -634,6 +652,13 @@ func TestGetEmbedForPost(t *testing.T) {
|
|||||||
assert.Nil(t, embed)
|
assert.Nil(t, embed)
|
||||||
assert.Nil(t, err)
|
assert.Nil(t, err)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
t.Run("should not return a link embed", func(t *testing.T) {
|
||||||
|
embed, err := th.App.getEmbedForPost(&model.Post{}, otherURL, false)
|
||||||
|
|
||||||
|
assert.Nil(t, embed)
|
||||||
|
assert.Nil(t, err)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ const (
|
|||||||
POST_EMBED_IMAGE PostEmbedType = "image"
|
POST_EMBED_IMAGE PostEmbedType = "image"
|
||||||
POST_EMBED_MESSAGE_ATTACHMENT PostEmbedType = "message_attachment"
|
POST_EMBED_MESSAGE_ATTACHMENT PostEmbedType = "message_attachment"
|
||||||
POST_EMBED_OPENGRAPH PostEmbedType = "opengraph"
|
POST_EMBED_OPENGRAPH PostEmbedType = "opengraph"
|
||||||
|
POST_EMBED_LINK PostEmbedType = "link"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PostEmbedType string
|
type PostEmbedType string
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user