code: func OpenGraphResolver(doc *goquery.Document) string {
  	meta := doc.Find("meta")
  	links := doc.Find("link")
  	var topImage string
  	meta = meta.Union(links)
  	var ogImages []ogImage
  	meta.Each(func(i int, tag *goquery.Selection) {
  		for _, ogTag := range ogTags {
  			attr, exist := tag.Attr(ogTag.attribute)
  			value, vexist := tag.Attr(ogTag.value)
  			if exist && attr == ogTag.name && vexist {
  				ogImage := ogImage{
  					url:   value,
  					tpe:   ogTag.tpe,
  					score: 0,
  				}
  
  				ogImages = append(ogImages, ogImage)
  			}
  		}
  	})
  	if len(ogImages) == 0 {
  		return ""
  	}
  	if len(ogImages) == 1 {
  		topImage = ogImages[0].url
  		goto IMAGE_FINALIZE
  	}
  	for _, ogImage := range ogImages {
  		if largebig.MatchString(ogImage.url) {
  			ogImage.score++
  		}
  		if ogImage.tpe == "twitter" {
  			ogImage.score++
  		}
  	}
  	topImage = findBestImageFromScore(ogImages).url
  IMAGE_FINALIZE:
  	if !strings.HasPrefix(topImage, "http") {
  		topImage = "http://" + topImage
  	}
  
  	return topImage
  }
docs: // OpenGraphResolver return OpenGraph properties