Mercurial > prosody-modules
comparison mod_ogp/test.lua @ 4255:38da10e4b593
mod_ogp: Update parsing logic to catch more cases
| author | Seve Ferrer <seve@delape.net> |
|---|---|
| date | Wed, 18 Nov 2020 13:48:07 +0100 |
| parents | a4e182d7ff0a |
| children |
comparison
equal
deleted
inserted
replaced
| 4254:a4e182d7ff0a | 4255:38da10e4b593 |
|---|---|
| 1 local html = [[ | 1 local html = [[ |
| 2 <meta property="og:title" content="Example 1"> | 2 <meta property="og:title" content="Example 1 A"> |
| 3 <meta property=og:title content="Example 2"> | 3 <meta property=og:title content="Example 2 B"> |
| 4 <meta property="og:title" content="Example 3" > | 4 <meta property="og:title" content="Example 3 C" > |
| 5 <meta property="og:title" content="Example 4" /> | 5 <meta property="og:title" content="Example 4 D" /> |
| 6 <meta property="og:title" content="Example 5"/> | 6 <meta property="og:title" content="Example 5 E"/> |
| 7 <meta property=og:title content=Example 6/> | 7 <meta property=og:title content=Example 6 F/> |
| 8 <meta property="og:title" content= "Example 7" /> | 8 <meta property="og:title" content= "Example 7 G" /> |
| 9 <meta property="og:title" itemprop="image primaryImageOfPage" content="Example 8" /> | 9 <meta property="og:title" itemprop="image primaryImageOfPage" content="Example 8 H" /> |
| 10 <meta content="Example 9" property="og:title" > | 10 <meta property='og:title' content='Example 9 I' /> |
| 11 <meta content="Example 10" property="og:title"> | 11 <meta content="Example 10 J" property="og:title" > |
| 12 <meta content="Example 11" property="og:title"/> | 12 <meta content="Example 11 K" property="og:title"> |
| 13 <meta content="Example 12" property="og:title" /> | 13 <meta content="Example 12 L" property="og:title"/> |
| 14 <meta content="Example 13" property=og:title > | 14 <meta content="Example 13 M" property="og:title" /> |
| 15 <meta content=Example 14 property=og:title > | 15 <meta content="Example 14 N" property=og:title > |
| 16 <meta content= "Example 15" property="og:title" /> | 16 <meta content=Example 15 O property=og:title > |
| 17 <meta content="Example 16" itemprop="image primaryImageOfPage" property="og:title" /> | 17 <meta content= "Example 16 P" property="og:title" /> |
| 18 <meta content="Example 17 Q" itemprop="image primaryImageOfPage" property="og:title" /> | |
| 19 <meta content= 'Example 18 R' property='og:title' /> | |
| 18 ]] | 20 ]] |
| 19 | 21 |
| 20 | 22 |
| 21 local ogp_pattern = [[<meta property=["']?(og:.-)["']? content=%s*["']?(.-)["']?%s-/?>]] | |
| 22 local ogp_pattern2 = [[<meta content=%s*["']?(.-)["']? property=["']?(og:.-)["']?%s-/?>]] | |
| 23 | 23 |
| 24 for property, content in html:gmatch(ogp_pattern) do | 24 local meta_pattern = [[<meta (.-)/?>]] |
| 25 print("Pattern 1|", property, content, "|Pattern 1") | 25 for match in html:gmatch(meta_pattern) do |
| 26 local property = match:match([[property=%s*["']?(og:.-)["']?%s]]) | |
| 27 if not property then | |
| 28 property = match:match([[property=["']?(og:.-)["']$]]) | |
| 29 end | |
| 30 | |
| 31 local content = match:match([[content=%s*["'](.-)["']%s]]) | |
| 32 if not content then | |
| 33 content = match:match([[content=["']?(.-)["']$]]) | |
| 34 end | |
| 35 if not content then | |
| 36 content = match:match([[content=(.-) property]]) | |
| 37 end | |
| 38 if not content then | |
| 39 content = match:match([[content=(.-)$]]) | |
| 40 end | |
| 41 | |
| 42 print(property, '\t', content, '\t', match .. "|") | |
| 26 end | 43 end |
| 27 print('-------------------------------------------------------------') | |
| 28 for content, property in html:gmatch(ogp_pattern2) do | |
| 29 print("Pattern 2|", property, content, "|Pattern 2") | |
| 30 end |
