Skip to content

Commit 030a8f6

Browse files
authored
add missing cmd/ (#10)
1 parent 525a102 commit 030a8f6

File tree

4 files changed

+189
-1
lines changed

4 files changed

+189
-1
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
1-
.idea/
21
findfolders
32
listrecordings
43
upload
4+
!*/
55
zat
66
zat.yml
77
google.config.json
88
google.creds.json
99
zoom.config.json
1010
zoom.creds.json
11+
.idea/
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"flag"
6+
"fmt"
7+
"log"
8+
"os"
9+
"path"
10+
11+
"github.com/graphaelli/zat/cmd"
12+
"github.com/graphaelli/zat/google"
13+
)
14+
15+
func main() {
16+
andQuery := flag.String("query", "", "google drive query: https://developers.google.com/drive/api/v3/search-files")
17+
cfgDir := cmd.FlagConfigDir()
18+
flag.Parse()
19+
20+
logger := log.New(os.Stderr, "", cmd.LogFmt)
21+
googleClient, err := google.NewClientFromFile(
22+
logger,
23+
path.Join(*cfgDir, cmd.GoogleConfigPath),
24+
google.NewCredentialsManager(cmd.GoogleCredsPath).ClientOption,
25+
)
26+
if err != nil {
27+
logger.Fatal(err)
28+
}
29+
query := fmt.Sprintf("mimeType='%s'", google.MimeTypeFolder)
30+
if *andQuery != "" {
31+
query += " and " + *andQuery
32+
}
33+
var pageToken string
34+
for page := 1; page < 5; page++ {
35+
files, err := googleClient.ListFiles(context.TODO(), query, pageToken)
36+
if err != nil {
37+
logger.Fatal(err)
38+
}
39+
for _, f := range files.Files {
40+
name := f.Name
41+
if len(name) >= 60 {
42+
name = name[0:59] + "⋯"
43+
}
44+
fmt.Printf("%-60s %-33s https://drive.google.com/drive/folders/%s\n", name, f.Id, f.Id)
45+
}
46+
if files.NextPageToken == "" {
47+
break
48+
}
49+
pageToken = files.NextPageToken
50+
}
51+
}

cmd/google/upload/upload.go

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package main
2+
3+
import (
4+
"context"
5+
"flag"
6+
"fmt"
7+
"io/ioutil"
8+
"log"
9+
"os"
10+
"path"
11+
12+
"google.golang.org/api/drive/v3"
13+
14+
"github.com/graphaelli/zat/cmd"
15+
"github.com/graphaelli/zat/google"
16+
)
17+
18+
func main() {
19+
cfgDir := cmd.FlagConfigDir()
20+
flag.Parse()
21+
22+
if flag.NArg() != 2 {
23+
fmt.Printf("usage: %s <src> <dst>", os.Args[0])
24+
os.Exit(1)
25+
}
26+
logger := log.New(os.Stderr, "", cmd.LogFmt)
27+
28+
src, dst := flag.Arg(0), flag.Arg(1)
29+
srcInfo, err := os.Stat(src)
30+
if err != nil {
31+
logger.Fatal(err)
32+
}
33+
if !srcInfo.IsDir() {
34+
logger.Fatal("only directories supported")
35+
}
36+
37+
googleClient, err := google.NewClientFromFile(
38+
logger,
39+
path.Join(*cfgDir, cmd.GoogleConfigPath),
40+
google.NewCredentialsManager(cmd.GoogleCredsPath).ClientOption,
41+
)
42+
if err != nil {
43+
logger.Fatal(err)
44+
}
45+
46+
service, err := googleClient.Service(context.TODO())
47+
if err != nil {
48+
logger.Fatal(err)
49+
}
50+
51+
parent, err := service.Files.Get(dst).Do()
52+
if err != nil {
53+
logger.Fatal(err)
54+
}
55+
dir, err := service.Files.Create(&drive.File{
56+
Name: srcInfo.Name(),
57+
MimeType: google.MimeTypeFolder,
58+
Parents: []string{parent.Id},
59+
}).Do()
60+
if err != nil {
61+
logger.Fatal(err)
62+
}
63+
logger.Printf("created folder %s - https://drive.google.com/drive/folders/%s", dir.Name, dir.Id)
64+
files, err := ioutil.ReadDir(src)
65+
if err != nil {
66+
logger.Fatal(err)
67+
}
68+
69+
for _, file := range files {
70+
r, err := os.Open(path.Join(src, file.Name()))
71+
if err != nil {
72+
logger.Fatal(err)
73+
}
74+
up, err := service.Files.Create(&drive.File{
75+
Name: file.Name(),
76+
Parents: []string{dir.Id},
77+
}).Media(r).Do()
78+
79+
if err != nil {
80+
logger.Fatal(err)
81+
}
82+
logger.Printf("uploaded %s to https://drive.google.com/drive/folders/%s", up.Name, dir.Id)
83+
}
84+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
package main
2+
3+
import (
4+
"flag"
5+
"fmt"
6+
"log"
7+
"os"
8+
"path"
9+
"strings"
10+
"time"
11+
12+
"github.com/graphaelli/zat/cmd"
13+
"github.com/graphaelli/zat/zoom"
14+
)
15+
16+
func pluralize(c int) string {
17+
if c == 1 {
18+
return ""
19+
}
20+
return "s"
21+
}
22+
23+
func main() {
24+
cfgDir := cmd.FlagConfigDir()
25+
since := flag.Duration("since", 168*time.Hour, "since")
26+
flag.Parse()
27+
28+
logger := log.New(os.Stderr, "", cmd.LogFmt)
29+
zoomClient, err := zoom.NewClientFromFile(
30+
logger,
31+
path.Join(*cfgDir, cmd.ZoomConfigPath),
32+
zoom.NewCredentialsManager(cmd.ZoomCredsPath).ClientOption,
33+
)
34+
if err != nil {
35+
logger.Fatal(err)
36+
}
37+
recordings, err := zoomClient.ListRecordings(time.Now().Add(-1**since), "")
38+
if err != nil {
39+
logger.Fatal(err)
40+
}
41+
logger.Printf("%d recording%s found", recordings.TotalRecords, pluralize(recordings.TotalRecords))
42+
for _, meeting := range recordings.Meetings {
43+
fmt.Printf("%s %d %s\n", meeting.StartTime.Format("2006-01-02"), meeting.ID, meeting.Topic)
44+
for _, f := range meeting.RecordingFiles {
45+
typ := f.RecordingType
46+
if typ == "" {
47+
typ = f.FileType
48+
}
49+
fmt.Printf("\t%s %s\n", strings.ToLower(typ), f.DownloadURL)
50+
}
51+
}
52+
}

0 commit comments

Comments
 (0)