diff --git a/config.sample.yaml b/config.sample.yaml index 69a52d3..3efeff7 100644 --- a/config.sample.yaml +++ b/config.sample.yaml @@ -67,7 +67,7 @@ services: UserID: "@goneb:localhost" # requires a Syncing client Config: api_key: "qwg4672vsuyfsfe" - use_downsized: false + image_type: 0 - ID: "guggy_service" Type: "guggy" diff --git a/src/github.com/matrix-org/go-neb/services/giphy/giphy.go b/src/github.com/matrix-org/go-neb/services/giphy/giphy.go index 4da7d31..6b1a307 100644 --- a/src/github.com/matrix-org/go-neb/services/giphy/giphy.go +++ b/src/github.com/matrix-org/go-neb/services/giphy/giphy.go @@ -28,8 +28,10 @@ type image struct { type result struct { Slug string `json:"slug"` Images struct { - Downsized image `json:"downsized"` - Original image `json:"original"` + Original image `json:"original"` + DownsampledFixedHeight image `json:"fixed_height_downsampled"` + DownsampledFixedWidth image `json:"fixed_width_downsampled"` + Downsized image `json:"downsized"` } `json:"images"` } @@ -42,17 +44,19 @@ type giphySearch struct { // Example request: // { // "api_key": "dc6zaTOxFJmzC", -// "use_downsized": false +// "image_type": 0 // } type Service struct { types.DefaultService // The Giphy API key to use when making HTTP requests to Giphy. // The public beta API key is "dc6zaTOxFJmzC". APIKey string `json:"api_key"` - // Whether to use the downsized image from Giphy. - // Uses the original image when set to false. - // Defaults to false. - UseDownsized bool `json:"use_downsized"` + + // Specifies whether to use downsampled/downsized image from Giphy. + // 0 indicates original image (defaults to this) + // 1 for downsized images + // 2 for fixed height downsampled, 3 for fixed width downsampled images + ImageType int `json:"image_type"` } // Commands supported: @@ -78,9 +82,13 @@ func (s *Service) cmdGiphy(client *gomatrix.Client, roomID, userID string, args } image := gifResult.Images.Original - if s.UseDownsized { + switch s.ImageType { + case 1: + image = gifResult.Images.DownsampledFixedHeight + case 2: + image = gifResult.Images.DownsampledFixedWidth + case 3: image = gifResult.Images.Downsized - } if image.URL == "" { return nil, fmt.Errorf("No results")