code: func Calculate(ctx context.Context, name string, sec store.Secret) (twofactor.OTP, string, error) {
  	otpURL := ""
  	// check body
  	for _, line := range strings.Split(sec.Body(), "\n") {
  		if strings.HasPrefix(line, "otpauth://") {
  			otpURL = line
  			break
  		}
  	}
  	if otpURL != "" {
  		return twofactor.FromURL(otpURL)
  	}
  
  	// check yaml entry and fall back to password if we don't have one
  	label := name
  
  	secKey, err := sec.Value("totp")
  	if err != nil {
  		secKey = sec.Password()
  	}
  
  	if strings.HasPrefix(secKey, "otpauth://") {
  		return twofactor.FromURL(secKey)
  	}
  
  	otp, err := twofactor.NewGoogleTOTP(secKey)
  	return otp, label, err
  }
docs: // Calculate will compute a OTP code from a given secret