code: func (c *Context) WebPreview(title string, headline string, text string, serviceURL string, imageURL string) (WebPreviewURL string) {
  	token := rndStr.Get(10)
  	if title == "" {
  		title = c.Service().NameToPrint
  		c.Log().WithField("token", token).Warn("webPreview: title is empty")
  	}
  
  	if headline == "" {
  		c.Log().WithField("token", token).Warn("webPreview: headline is empty")
  		headline = "-"
  
  	}
  	wp := webPreview{
  		title,
  		headline,
  		text,
  		serviceURL,
  		imageURL,
  		token,
  		"",
  		0,
  		time.Now(),
  	}
  
  	wp.Hash = wp.CalculateHash()
  
  	var wpExists webPreview
  	c.db.C("previews").Find(bson.M{"hash": wp.Hash}).One(&wpExists)
  
  	if wpExists.Token != "" {
  		wp = wpExists
  	} else {
  		err := c.db.C("previews").Insert(wp)
  
  		if err != nil {
  			// Wow! So jackpot! Much collision
  			wp.Token = rndStr.Get(10)
  			err = c.db.C("previews").Insert(wp)
  			c.Log().WithError(err).Error("Can't add webpreview")
  
  		}
  	}
  
  	return Config.BaseURL + "/a/" + wp.Token
  
  }
docs: // WebPreview generate fake webpreview and store it in DB. Telegram will resolve it as we need