Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Nov 8, 2022. It is now read-only.

Commitce8a263

Browse files
committed
fix(editor-parser): some edge-case of open graph info
1 parent8b7fda4 commitce8a263

File tree

2 files changed

+91
-4
lines changed

2 files changed

+91
-4
lines changed

‎lib/groupher_server_web/controller/og_controller.ex‎

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,25 @@ defmodule GroupherServerWeb.Controller.OG do
2222
end
2323
end
2424

25-
defpok_response(conn,url,%OpenGraph{title:nil})do
25+
defpok_response(conn,url,%OpenGraph{title:nil,description:nil})do
2626
error_response(conn,url)
2727
end
2828

29-
defpok_response(conn,_url,info)do
29+
defpok_response(conn,url,%OpenGraph{title:nil,description:description}=info)
30+
whennotis_nil(description)do
31+
json(conn,%{
32+
success:1,
33+
meta:%{
34+
title:info.description|>String.slice(0,8),
35+
description:info.description,
36+
image:%{
37+
url:nil
38+
}
39+
}
40+
})
41+
end
42+
43+
defpok_response(conn,url,info)do
3044
json(conn,%{
3145
success:1,
3246
meta:%{
@@ -78,6 +92,19 @@ defmodule GroupherServerWeb.Controller.OG do
7892
})
7993
end
8094

95+
defperror_response(conn,url,"Not found :(")do
96+
json(conn,%{
97+
success:1,
98+
meta:%{
99+
title:url,
100+
description:"--",
101+
image:%{
102+
url:nil
103+
}
104+
}
105+
})
106+
end
107+
81108
defperror_response(conn,_url,_reason)do
82109
json(conn,%{
83110
success:0,

‎test/groupher_server_web/controller/og_test.exs‎

Lines changed: 62 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ defmodule GroupherServerWeb.Test.Controller.OG do
2424
assertMap.has_key?(image,"url")
2525
end
2626

27-
@tag:wip2
27+
@tag:wip
2828
test"should return valid structure & error msg when query domain is not exsit"do
2929
conn=build_conn()
3030

@@ -52,7 +52,7 @@ defmodule GroupherServerWeb.Test.Controller.OG do
5252
assertMap.has_key?(image,"url")
5353
end
5454

55-
@tag:wip2
55+
@tag:wip
5656
test"return empty valid structure when url not follow open-graph"do
5757
conn=build_conn()
5858

@@ -82,4 +82,64 @@ defmodule GroupherServerWeb.Test.Controller.OG do
8282
assertMap.has_key?(image,"url")
8383
assertimage["url"]==nil
8484
end
85+
86+
@tag:wip
87+
test"return empty valid structure when url not found"do
88+
conn=build_conn()
89+
90+
url="https://zhihu.com"
91+
res=get(conn,"/api/og-info",%{url:url})
92+
res=json_response(res,200)
93+
94+
# IO.inspect(res, label: "json res")
95+
assertMap.has_key?(res,"success")
96+
assertMap.has_key?(res,"meta")
97+
98+
success=res["success"]
99+
assertsuccess==1
100+
101+
meta=res["meta"]
102+
assertMap.has_key?(meta,"description")
103+
assertMap.has_key?(meta,"image")
104+
assertMap.has_key?(meta,"title")
105+
106+
title=get_in(res,["meta","title"])
107+
asserttitle==url
108+
109+
description=get_in(res,["meta","description"])
110+
assertdescription=="--"
111+
112+
image=get_in(res,["meta","image"])
113+
assertMap.has_key?(image,"url")
114+
assertimage["url"]==nil
115+
end
116+
117+
@tag:wip2
118+
test"return empty valid structure when title nil but description not nil"do
119+
conn=build_conn()
120+
121+
url="https://zhuanlan.zhihu.com"
122+
res=get(conn,"/api/og-info",%{url:url})
123+
res=json_response(res,200)
124+
125+
assertMap.has_key?(res,"success")
126+
assertMap.has_key?(res,"meta")
127+
128+
success=res["success"]
129+
assertsuccess==1
130+
131+
meta=res["meta"]
132+
assertMap.has_key?(meta,"description")
133+
assertMap.has_key?(meta,"image")
134+
assertMap.has_key?(meta,"title")
135+
136+
title=get_in(res,["meta","title"])
137+
description=get_in(res,["meta","title"])
138+
139+
assertString.contains?(description,title)
140+
141+
image=get_in(res,["meta","image"])
142+
assertMap.has_key?(image,"url")
143+
assertimage["url"]==nil
144+
end
85145
end

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp