diff options
author | Alex Auvolat <alex@adnab.me> | 2020-02-21 15:12:22 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-02-21 15:12:22 +0100 |
commit | 92d380aa86dfd3e60f5b8d826ec96c0fbc17614a (patch) | |
tree | c5edf0e60ee308ba49a0aa526fa5ad184f289f2f /connector/mediaobject.go | |
parent | a4cf41536fc8eef743cd330b86e784079100ec6c (diff) | |
download | easybridge-92d380aa86dfd3e60f5b8d826ec96c0fbc17614a.tar.gz easybridge-92d380aa86dfd3e60f5b8d826ec96c0fbc17614a.zip |
Easybridge has an avatar
Diffstat (limited to 'connector/mediaobject.go')
-rw-r--r-- | connector/mediaobject.go | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/connector/mediaobject.go b/connector/mediaobject.go new file mode 100644 index 0000000..75635ee --- /dev/null +++ b/connector/mediaobject.go @@ -0,0 +1,50 @@ +package connector + +import ( + "io" + "net/http" + "os" + "path/filepath" + + log "github.com/sirupsen/logrus" +) + +type FileMediaObject struct { + Path string +} + +func (m *FileMediaObject) Filename() string { + return filepath.Base(m.Path) +} + +func (m *FileMediaObject) Size() int64 { + fi, err := os.Stat(m.Path) + if err != nil { + log.Fatal(err) + } + return fi.Size() +} + +func (m *FileMediaObject) Mimetype() string { + f, err := os.Open(m.Path) + if err != nil { + log.Fatal(err) + } + defer f.Close() + + buffer := make([]byte, 512) + _, err = f.Read(buffer) + if err != nil { + log.Fatal(err) + } + + return http.DetectContentType(buffer) +} + +func (m *FileMediaObject) Read() (io.ReadCloser, error) { + return os.Open(m.Path) +} + +func (m *FileMediaObject) URL() string { + return "" +} |