aboutsummaryrefslogtreecommitdiffstats
path: root/util/drive.go
diff options
context:
space:
mode:
Diffstat (limited to 'util/drive.go')
-rw-r--r--util/drive.go44
1 files changed, 43 insertions, 1 deletions
diff --git a/util/drive.go b/util/drive.go
index 971b7fd..c4ba137 100644
--- a/util/drive.go
+++ b/util/drive.go
@@ -1,8 +1,8 @@
package util
import (
- "github.com/prasmussen/google-api-go-client/drive/v2"
"fmt"
+ "github.com/prasmussen/google-api-go-client/drive/v2"
"strings"
)
@@ -24,3 +24,45 @@ func ParentList(parents []*drive.ParentReference) string {
return strings.Join(ids, ", ")
}
+
+func ExportFormat(info *drive.File, format string) (downloadUrl string, extension string, err error) {
+ // See https://developers.google.com/drive/web/manage-downloads#downloading_google_documents
+ switch format {
+ case "docx":
+ extension = ".docx"
+ downloadUrl = info.ExportLinks["application/vnd.openxmlformats-officedocument.wordprocessingml.document"]
+ case "xlsx":
+ extension = ".xlsx"
+ downloadUrl = info.ExportLinks["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"]
+ case "pptx":
+ extension = ".pptx"
+ downloadUrl = info.ExportLinks["application/application/vnd.openxmlformats-officedocument.presentationml.presentation"]
+ case "odf":
+ extension = ".odf"
+ downloadUrl = info.ExportLinks["application/vnd.oasis.opendocument.text"]
+ case "ods":
+ extension = ".ods"
+ downloadUrl = info.ExportLinks["application/x-vnd.oasis.opendocument.spreadsheet"]
+ case "pdf":
+ extension = ".pdf"
+ downloadUrl = info.ExportLinks["application/pdf"]
+ case "rtf":
+ extension = ".rtf"
+ downloadUrl = info.ExportLinks["application/rtf"]
+ case "csv":
+ extension = ".csv"
+ downloadUrl = info.ExportLinks["text/csv"]
+ case "html":
+ extension = ".html"
+ downloadUrl = info.ExportLinks["text/html"]
+ case "txt":
+ extension = ".txt"
+ downloadUrl = info.ExportLinks["text/plain"]
+ case "json":
+ extension = ".json"
+ downloadUrl = info.ExportLinks["application/vnd.google-apps.script+json"]
+ default:
+ err = fmt.Errorf("Unknown export format: %s. Known formats: docx, xlsx, pptx, odf, ods, pdf, rtf, csv, txt, html, json", format)
+ }
+ return
+}