summaryrefslogtreecommitdiffstats
path: root/bridge/helper
diff options
context:
space:
mode:
authorWim <wim@42.be>2019-02-27 00:41:50 +0100
committerGitHub <noreply@github.com>2019-02-27 00:41:50 +0100
commit26a7e35f2777b8424477eef1838125a6ae55fe48 (patch)
treed48cfdb02bb7a6d0558413cbad906f2ec59cb3a2 /bridge/helper
parentd44d2a5f0014fda12ce78d35e416dffab6b7c04a (diff)
downloadmatterbridge-msglm-26a7e35f2777b8424477eef1838125a6ae55fe48.tar.gz
matterbridge-msglm-26a7e35f2777b8424477eef1838125a6ae55fe48.tar.bz2
matterbridge-msglm-26a7e35f2777b8424477eef1838125a6ae55fe48.zip
Add MediaConvertWebPToPNG option (telegram). (#741)
* Add MediaConvertWebPToPNG option (telegram). When enabled matterbridge will convert .webp files to .png files before uploading them to the mediaserver of the other bridges. Fixes #398
Diffstat (limited to 'bridge/helper')
-rw-r--r--bridge/helper/helper.go19
-rw-r--r--bridge/helper/helper_test.go21
2 files changed, 40 insertions, 0 deletions
diff --git a/bridge/helper/helper.go b/bridge/helper/helper.go
index 3836556f..c336fd13 100644
--- a/bridge/helper/helper.go
+++ b/bridge/helper/helper.go
@@ -3,6 +3,7 @@ package helper
import (
"bytes"
"fmt"
+ "image/png"
"io"
"net/http"
"regexp"
@@ -10,6 +11,8 @@ import (
"time"
"unicode/utf8"
+ "golang.org/x/image/webp"
+
"github.com/42wim/matterbridge/bridge/config"
"github.com/sirupsen/logrus"
"gitlab.com/golang-commonmark/markdown"
@@ -177,3 +180,19 @@ func ParseMarkdown(input string) string {
md := markdown.New(markdown.XHTMLOutput(true), markdown.Breaks(true))
return (md.RenderToString([]byte(input)))
}
+
+// ConvertWebPToPNG convert input data (which should be WebP format to PNG format)
+func ConvertWebPToPNG(data *[]byte) error {
+ r := bytes.NewReader(*data)
+ m, err := webp.Decode(r)
+ if err != nil {
+ return err
+ }
+ var output []byte
+ w := bytes.NewBuffer(output)
+ if err := png.Encode(w, m); err != nil {
+ return err
+ }
+ *data = w.Bytes()
+ return nil
+}
diff --git a/bridge/helper/helper_test.go b/bridge/helper/helper_test.go
index 1770acd9..48f33b10 100644
--- a/bridge/helper/helper_test.go
+++ b/bridge/helper/helper_test.go
@@ -1,6 +1,8 @@
package helper
import (
+ "io/ioutil"
+ "os"
"testing"
"github.com/stretchr/testify/assert"
@@ -103,3 +105,22 @@ func TestGetSubLines(t *testing.T) {
assert.Equalf(t, testcase.nonSplitOutput, nonSplitLines, "'%s' testcase should give expected lines without splitting.", testname)
}
}
+
+func TestConvertWebPToPNG(t *testing.T) {
+ if os.Getenv("LOCAL_TEST") == "" {
+ t.Skip()
+ }
+ input, err := ioutil.ReadFile("test.webp")
+ if err != nil {
+ t.Fail()
+ }
+ d := &input
+ err = ConvertWebPToPNG(d)
+ if err != nil {
+ t.Fail()
+ }
+ err = ioutil.WriteFile("test.png", *d, 0644)
+ if err != nil {
+ t.Fail()
+ }
+}