Skip to content

Commit

Permalink
Query storage usage
Browse files Browse the repository at this point in the history
  • Loading branch information
GaPhi committed Dec 22, 2024
1 parent c6657ae commit 0a6a693
Show file tree
Hide file tree
Showing 2 changed files with 127 additions and 0 deletions.
115 changes: 115 additions & 0 deletions api/storage.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
package api

import (
"encoding/json"

"github.com/GaPhi/gphotosuploader/auth"
"github.com/buger/jsonparser"
)

// Create Album
func QueryStorage(credentials auth.CookieCredentials) (int64, int64, error) {
innerJson := []interface{}{
[]interface{}{
[]interface{}{
[]interface{}{
nil,
string(credentials.PersistentParameters.UserId),
},
},
[]interface{}{
nil,
[]interface{}{},
[]interface{}{
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
[]interface{}{},
},
[]interface{}{
nil,
nil,
[]interface{}{
[]interface{}{},
},
},
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
nil,
[]interface{}{},
},
},
}
innerJsonString, err := json.Marshal(innerJson)
if err != nil {
return -1, -1, err
}
jsonReq := []interface{}{
[]interface{}{
[]interface{}{
"eNG3nf",
string(innerJsonString),
nil,
"generic",
},
},
}
innerJsonRes, err := doRequest(credentials, jsonReq)
if err != nil {
return -1, -1, err
}

used, err := jsonparser.GetInt(innerJsonRes, "[0]", "[1]", "[0]", "[7]", "[0]")
if err != nil {
return -1, -1, unexpectedResponse(innerJsonRes)
}
total, err := jsonparser.GetInt(innerJsonRes, "[0]", "[1]", "[0]", "[7]", "[1]")
if err != nil {
return -1, -1, unexpectedResponse(innerJsonRes)
}

return used, total, nil
}
12 changes: 12 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ const noDeleteBefore = -1 << 63
var (
// CLI arguments
authFile string
queryStorage bool
deleteUnsupported bool
deleteBefore int64
emptyTrash bool
Expand Down Expand Up @@ -71,6 +72,16 @@ func main() {
log.Printf("Got timeline: %v\n", len(timeline))
}

// Query storage
if queryStorage {
log.Printf("Querying storage...\n")
used, total, err := api.QueryStorage(credentials)
if err != nil {
log.Fatalf("Can't get storage data: %v\n", err)
}
log.Printf("Storage: %v/%v (%v%%)\n", used, total, 100.0*used/total)
}

// Delete unsupported media items
if deleteUnsupported {
log.Printf("Deleting unsupported media items...\n")
Expand Down Expand Up @@ -247,6 +258,7 @@ func main() {
// Parse CLI arguments
func parseCliArguments() {
flag.StringVar(&authFile, "auth", "auth.json", "Authentication json file")
flag.BoolVar(&queryStorage, "queryStorage", false, "Query storage (used/left)")
flag.BoolVar(&deleteUnsupported, "deleteUnsupported", false, "Delete unsupported media items")
flag.Int64Var(&deleteBefore, "deleteBefore", noDeleteBefore, "Use this parameter to delete existing media items created before this date (Unix timestamp in ms)")
flag.BoolVar(&emptyTrash, "emptyTrash", false, "Empty trash")
Expand Down

0 comments on commit 0a6a693

Please sign in to comment.