From b8cbee15306e64f3bc01872e54a1ba1d06f92ab0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Reutersw=C3=A4rd?= Date: Sat, 16 Jan 2021 13:14:53 +0100 Subject: [PATCH] Update readme. --- README.md | 38 +++++++++++++++++++++++++------------- ogp.png | Bin 0 -> 24958 bytes 2 files changed, 25 insertions(+), 13 deletions(-) create mode 100644 ogp.png diff --git a/README.md b/README.md index e9d55b8..4b06ca7 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,23 @@ -# [![Open Graph protocol](http://imgur.com/pqFdEuo.png?1)](http://ogp.me/) opengraph +# opengraph -opengraph is a Go library and command-line tool for extracting Open Graph metadata from HTML documents. +[![Build Status](https://travis-ci.org/johnreutersward/opengraph.svg?branch=master)](https://travis-ci.org/johnreutersward/opengraph) +[![Go Reference](https://pkg.go.dev/badge/github.com/johnreutersward/opengraph.svg)](https://pkg.go.dev/github.com/johnreutersward/opengraph) +[![Go Report Card](https://goreportcard.com/badge/github.com/johnreutersward/opengraph)](https://goreportcard.com/report/github.com/johnreutersward/opengraph) -**Documentation:** -**Open Graph protocol:** -**Build Status:** [![travis-ci status](https://api.travis-ci.org/johnreutersward/opengraph.png)](https://travis-ci.org/johnreutersward/opengraph) +![ogp](ogp.png?raw=true "ogp") -## Usage +> opengraph is a Go library and command-line tool for extracting [Open Graph](https://ogp.me/ "Open Graph protocol") metadata from HTML documents. + +## Library + +### Install ```go import "github.com/johnreutersward/opengraph" ``` +### Usage + To extract Open Graph metadata from a movie on IMDb (sans error handling) ```go @@ -33,17 +39,23 @@ description = Directed by Joel Coen, Ethan Coen. With Jeff Bridges ... ... ``` -## Command-line usage +## Command-line tool + +### Install + +Binary releases: -Install +https://github.com/johnreutersward/opengraph/releases -```bash +Or build from source: + +``` $ go get github.com/johnreutersward/opengraph/cmd/opengraph ``` -Run +### Usage -```bash +``` $ opengraph http://www.imdb.com/title/tt0118715/ type: video.movie title: The Big Lebowski (1998) @@ -51,9 +63,9 @@ site_name: IMDb ... ``` -Output in JSON +Output in JSON: -```bash +``` $ opengraph -json http://www.imdb.com/title/tt0118715/ [ { diff --git a/ogp.png b/ogp.png new file mode 100644 index 0000000000000000000000000000000000000000..7fcbdf8b8f8dab67c25e3d54951080cd7ed21bb3 GIT binary patch literal 24958 zcma&N19W6h*Du^1+qP}nwkEc18#A#znb?^a6Wg|J+mlR^FaO8idf(^XdwNw@o$9@R z8>{xI>RqQIloTZ4VQ^po006wSl$gqAo%&aSg82OA13K+~RzMdONfAKRB;LvAO}?3? zw7I-IfabFe1po)406_mD`TPKYH~{d!wE+MbAnw1~DnMoc$Y(#nXVDI`0)YL4#`ClO z>yr8`pWJ`1g-sod&4`pN9b6q;EFBz)L{-^|OTmS%A)V~T4kdcW60DvJ|scE`u%FFSXIM^{5{UwmW)6VfPE&!h= z&u7!l%+-j<)6Ul3g~yYh-vYDc8>D${}N^I@(;T{ zEoAgGa%5y?U}ChhWBlJZU0hYn{;lNy%ITu!xD=4@j2NlyB|0l8Y4{}-IU ze)*dU{~Ozy!2Kb84QpTBvJ$Lhc7BQE~m_4yyH|JLW<$fgb^Zgyt&uK%#q^k0^WOZ?xE|AY14 z$p3W1f0+8War^h-^iMzhH=z>D|6SkXN7UKO$koAF&B4J|;Q#nk_?t=pKk|Pd@iG1tH2)Dqe~-|=^?rt^0L&-nKf_%B z#-}T*3jh!TNQ()pc>*u=APsc~X0mBp^BJ@TQpshV8JpLdgY3SeSO*5mBa#P!Nd*F+ zzg~v~O^e7v1u2Oj4hTWvgEZQ9qkG_b=p;t{G<%>;RCo&5YWFEgqHi)B0y>H6RX5AMk|vu3h<%js&~`zFZ< zetUO!VSWK%!WA}uzkI&T?e^AI6_0ERs>0Zf`oJM=VEPx?lO!j3z0Gt%sfX_wQwfj*CV<~yqBj9G z27=G}5(=#JU^Kcq9A7-EVV?cQP?FX;b?7mC{5s-D;#_yb!fQD>I2r+JLC082SWz4A z3&ku~wBL$0bt5H%BaQDNqe_(q0&4K0h%%^+$6!xnaAi7@Y&pD$I0oG+x@yG%+2%-L zFLT+JVh9#7ijG>=HgCUDa}N|by7p=-=%UhocfB=gmdG(T8-{NRrdRVLUzC!I2#BRZ zm&P2hcT@-uZ6G;dt`=16K0HHV%#x2!08xs-n~?|b$xL+i_IHvD9AqT}Li-TQEH_BEtGtzfO$mCCu;$w=C0ItwZ!=uN6+bVz3j+|pjhYlSQa4~Aeih_T9euUF(aVBY02J)ff^$DM1HmF-uQ4zX?OwcoK& z_eO2(VIrrlw#4IDfCr9Tg=J;Z>I?=XbNW8Q`hF)~Bd3{E($sqUM_sL7D6%~xU1j7| zFBedt!ol(EN`w-uK|PBa2X!Kj5KT+CKHv-?uMwuN?Z%R+RbA0qRa*;okMx6zVpvgS z?6YUMUR7*R5N?F}L`$0U;f(HjLhZ8YbdnG3%NN|g@$$&voO&!20pqrX3oCM>;bzqxASTUD7a{ zKxXU!w@f5kP;jB5dZrU3vXPy2`VyYN<;|DLV{F>fb@f0HG{9Zg-ripG&CBJ>-EnGh zu@jLm;dBkH0fMnMy}B$Y%PLqMgZ(X}`NL@RrZpdHbZGdNgt_mQ$QAWlgO%{w&ymo& zb^$EcRoZq=lK09R=*z-Y9Kr+KF%%51@u@T&%QQ7cM;&4IO$|Ooqhr>fgWQI*(yaHXH!=Ot{UuuP>OuL)W%*vgV<)H>zdh zwhl>)BbdYQ0cfWN7a%sLYM@A}CED7J_LUd&SY}-)U>zVYQeDlSkXFPK@-IaJrMkHV zq79|9+79SrB^c#=KeBdT5|Ni#pThQj9kyR-(B0{I{Bj=YW%+0^hTp`+Jvu*nV3S2< zb3m()@q^Z#0Km9XD2jIY@?PP3{r*j9_EM5FoW3^{g|6LPR(hq25*#i>x1vpi{)1!W z;Yom|B-1I@bz(eKNEUE!rSeUX1>aJN*)k%=Mav4Z?`r7ceGrnBb&nRCF>y?ym=~qm z1BgKb*_PX5#AO%6;IC+$Pdj&n8e}X(F3XKYQ+{Y>F2oUtxFS$vQSZFGag4Y-_iW!y z&|W54=i@^5#2f$BSd>^WlAm6~NW70pZATz&%?$?j;OUiVpad`ShK(r39~EmpPCcMW zck}%y>Nd_ICozFkQp(oWSE>Q~Mr365t!|B&C(oc#Kb>*KFLY$8s!crhhi4)gxrfT- z0!X~p^cV>!56P%??a%;kUche|;T9j~IXy*Igp(^40~C->vR{7>1YH{IKACGkhxxSWx>ix=Sv5@bbeU#f8Fvgx~u?S*a(Z zdW&}^0-xwO)_nzJVl|><1z1zTw&ZP|gBW=5t@%cwnztf=re>O}v|NTGXv54~B;Q8G zEv6b8F^~HfM89fpX%AA2sqz_UW#phGHK4Y)26YD{IZiG12WU{vej(S^tHS`v7&oi& zS8XNzfJpK4rvY-VFfTq}2Bf=q6dR1)?M%=#}2xX6=XIn1z>eR8;BRDmZuR_6V5|p;0wy@?l2#1Egi#4Z2Jub(Fpb<|~LaP9~^o zSuqD1m+Ck<-6STg$nWlnKI5IP8pRD}G7|)<4WyWgW zUETT&dI}j`T@lT&wFrgWABH4rFmGeT>nN`T3cw(>_|3Dq~<-2m@L#2eOzWm^tl?u;xc&qrYJbvpJEy4^4*y^GwLD3g^uJ z6ef{Zx?qAElFd+I>}>~wY)}evPVhrt4VZ+;;V0?j0(*ColBm9P&*Tu~Y zA98{{Ac31ILX=S6>rXbI!!Z`1bV&K(SwL2JBqh;A5UPT|Th-Qye%xS`tjVnC9Q%<) z=6=FJyZPF|h2otjty4JCCd%`GMQOz^Is7y3gDUn}cb#L1we4__7cI^|NAhqoixSho z`^->(^6nv^cnghF(SYC_r1WVfs2oO#w+gNgdoU$HIt9HI6+NW zig=p=ZRs@EHq`A@T6PMnA|7o{$49Xyv4F(>f%Ik}>V48oB_>Xdl70K5Ov~>KSu=3J zuoYrpu1p!pqB@;o zj3ZkcMQ~Qvtn=db`%PXtnl3IF3IS2MBQYsx0Vq)He`^#IU&f;OD!BhyzIk>5q$NUp5ttDd4y3SpR1djE3MV58zkHaNrMnMfSa~~`+S34tv)UFvN%L z_~Jm!;j%LkSobq=Q+=M=GCno4?W#YDoaa~dY|s-n)UtU%OyR?Kq7zVsgwWmZHR~ZZ zKtsH3Btz~FNLg!%#y^)!8hdxF-w|xOwyw|>yjjJjqXoa$f-`VWaFnwXGxR)2%2ov2 z6gy9$&C;5Z@Kmf9RO$o^bE5T2>pKMEvy4}ALF=g10A0+QM!!aQ)yOT?1`{>l^Sc%- z1`RKX1}Rw&_E%K4v>Y@{^FM5Z z5z~8lr5=787?=Uft3?N?2L@sS<%FAak$`kR+`)=TbGcrOMQs@wlQ{Lg^sBfW65C%_ z=U}KnGU27*>V!wQacnqco}dHbk&~{bePSL4vlMNiV3q#VX6QMi(67q+6K!WJZd_+nLOqIRJ9nlALJJ2Uszre!%UaC zyHXM?3wJQzwREAevBVe38GtrTa9I2b0>7VhRJ7~hWn9(Lg@|~prw$w8j$Sc>VvpTV zDfN|hT9{U{8|a8f+%OLbO+>uWB1~&QbZhY7u6K#25jf@O;yN0LkeUZUZ+Zk)^3I=^uEGk?j14&9Zn66>I0_Gxz|^lFvi z^BdWG&z0l=4a{nNNYkf$L+Ji)bF8y(e(dQsaA!K#^f~+LlYUNah*CMKmnnuOc2cf5 z7(SEcN?%n!w3#RkC={`%r`|4@S5(w;pUMI*$OyQ1Yelb$d=y}#dni|f7aeA>b5_+b z+bOb1p1}x z9<`mz?g{!#x2?J)3OMtWpQo^(Cw_1mG}<%FB4$ZZL$h|9KRiR(<6Rc+{ zR^l=vGm)WBISwp3dtdYw3#xxdz44z7Gk=O2NYYe7K^kp2@Fgb$gnpw^h9R zz(B0^hMzddR){Y}3n&fl`TpO8_>M7YfhNT?DW)TXsPQ#L!mS8g1RW@?B9<6Ah(G=i z9FwgiZa#^jbI-GEX_mhj=Z5Z_PS=R;$C{|S#pJVuw7Jb(5k6U6Uv>x;W%P0W}By3GdVB{}AE`mqJ{r6|p z_B5IhWv$?`1SS!VNiW&Z=hia>jKu7PF z=%&vZd&^7j-2OuVAHz_-1*MzJT=pc3s$@RboknGXeL;2njNn^T_4Rx(X?sdrO6S_FRE3|VwX zfsu16;~_aphBnKf6Y{$J^KeO%-If;jVY;XzzY^y4gog~@Ka@V|f^ls%aP@|*Cqnnp z-#NAug8@m+FO)%a zUQDZ5yKAzDDL#E*Ig9{LA+1-TZN^*Oyaq;}wL>6?ONp^~$pj9Ua%{)7{)yKv{_Oc0 z0=_$JGeg+1`UM+L4-pvBb)xR>b8;vFaTN~8D#BTit-YZweD&1{wA8?6vNoC25y z=(sFriWk9-_DK6j-n%%c6*z=GSrl`j5wSAQV-rIXnRuN8B}6@Eg6B_l%a!)H5ovZ? z;^UAOHN`LAsF6$)Gy;7>DxLso7}?}p#Wgm84m(ZLQrk0bHVTRfcf|g*Vy`Sx#&w4#n*D z4~pLpQ^mtWS6%RN;W!W3hQ;QRoK?S)v|A`p;BAj^q^nZ)Go%HE+CX(>p|zVDxe4*Q z4SzK)tM~OrDPvazQxV>oGv+>c?;r0Sv@M*$iBjG}1)IONp48pm9Ti%y@sJmGUnneDXA))a_Ij)38n zS08{9eP?JcM;DVeHRZH2~?<~WmOJYp>*!9NdF=h+ggYiM7Ql26G&iO#qTJOth)5`bSA5!P`#)2JeRe+HW zKTq(DpvqfKlzg*AzBRU4#aSYg=B8{TIT!DdRnUK2NJRC%1{ICb3)bvBHWZ`@B;J>I zQEJj@NlHYU10t-r*S`4ARo6=GIYQGuoS^)uMkh7XJ#oGH1zhLomu+pAWM1qVn2xZ6 z!J-~^dY(~*(@3kj1yr*+&gwwg>Oe01+=P>e9-djgS|IA#Q6`J9efzPM?ClwfpAQ5Xnw-VI zY->55a-8U~?4KHZC>)M|2SvaLfidC%g-1nCVsQ7!c>WogD?1;>>V@RYB4if3na=H_ z6)--NV!K9nlr12g?fI<#z%tFnW6U&;vTyIwnN1wf{2S-@0Xk+RFOR}Y+^}jC_nneB z7Rj_~DkJpw5T<-@1&H_KBN&>;dm^E6mMc8ZxG64_Xr-NGSTXSu=|kqdnHV^y7MInJ z$EKcNrNd8&_rjQ>VXVX>XY>24(dVfIA}aOH1gzFh#d=%Ba4XoAk@S z!Co6#M19kM20rerF^(J@;W0Y&O6dYkn0cwcBul-)Ml5%8Fbvz-+rkwVwlMVf&+`J% z7l?iFH7AQKMbZLV^0GOoQYN%j)e~FCzoPn+A@VFkt4jT`$1yMz^ENCF@2P#3ob`YC82izbOTSw9H9vhe zyKIh$W1+wniw}+m(|cagpVDe0j4F-gfhySK2q0p$a!S)AeG(Z*M#DfmUioLirs%B3 zg?iPOKy~dZZWoo7b6cJBr^_BVAgf@ z3~Tt|EurFbB>bVBD`DV#1t^38F0w<0?re(gD_})9yd03<<|uAyP>TjK*YKGe;_jK0 zRppNwJ5^{eSktoY;e|Vl8j`r{8?_u2EOR|!JF>ts@)!nbj!YrD z{I;j|gD1tZ!kxJIs^}O~+0S72Uw+u9BsaLW+%^6%9o`m}O8ZI5l>{KW?r3`dOh!Kj z!4U{(3xqX+9Stwv9k0qhp$x+xsQ5?6m-asmzh>bO6`;-$;V?_C#4g+9U zZ-^j>f4IjY6y!5&VD(hGe=~b+xj56CjW(vo)-At_&yo3kI@NQ)8xj(41D{$cE0`4R zZ?b?jcAMLKVJcs%fLp~(nh2#jxXtQMjy+AzIqnZi5v@o>APKCWr#&gPOqgNnapc&I zgq=#r(SLXO?mLpg;&`nD*N0QnCNEFF`MysHDS(9s`&(Pbwkr(2@LK`YpZT-| zA=8riEQPn5mfPM2#{Cb10GYbBr$y+ai8Bo;ZuK%GQ_4*Ds`lTT7S0>;U1?+f{#m}) z1Gd9|-V+5)T2ohnhzc}|_e@x@Af7wyHzPhD$;p#iiQm^GeF$)~b9ejQMV&eepLoIf z9~@?no~a$1&kDf`Z>O9um;vW(5znVIMWzR7yHe*RF)|xJYa69n;doScdCX3?O{%>v zZp7OHhMf~_%n-&y6re8Us=hfVj4j!{$~_3Q&TcPegPujk;n*X0$>u1t-2Q1R{J@Tr zt%05s{c?7lE>E!+LP%>Ce5%S1@+1`ezO`q#1aUDBhu*mWuHuWk~DAKf3mzI`J`dUcl zW@%%eFDoq+YC>!gm)&u&KR1LLWlRc<-#>HyM+;T=LS0?O9wBu-_`rCe9R0;P@;;$`byPk14^L&{xM z3-dUWp8^LAb$n2%k^5_;Jvq#m0%qEp` zab_X45t~!$qj1JHdud=kpG9h7@(mfdcw7k@62^-(LC!19wm7BBSDua1HuaLr$Lwh- zw&;l4i6W|Op;C92fBLhLR$s0mi4+@_au_#S;*j-@yS~7_e^eMeCAw;3zeKQ2eULy9 z+P?QA^<=ubRP&O}8ps)P0?f~M-ovBTyR9I5>JVzZ&mp3|CJ0yPmqN?`c2%sOPm*xO z5sy~|#0?axpl3|R$L)gfV1jGJ)8bgD{%Y@1p8+bzPoH^Bq#Mt&Pei=|(apxH(84S^ z1tzNchEulQj&m5BxzWDDgn{e&i#p6=!_SRZEjqO-i`I-*A2Ks@dd-{q!hM8_3`#2L z!wm`)7QOp51{|T~QH+*?b5xaz*b)lAuLiNE4mW

vTp-9%kIgiSp4Pom@0 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