Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package main
- import (
- "os"
- "flag"
- "fmt"
- "github.com/go-resty/resty"
- "encoding/json"
- "errors"
- "time"
- //"strconv"
- )
- var token string
- type RequestParams map[string]string
- func main() {
- flag.Parse()
- args := flag.Args()
- if len(args) < 1 {
- fmt.Println("Usage: ./vk <token>")
- os.Exit(1)
- }
- token = args[0]
- params := make(RequestParams, 300)
- params["album_id"] = "profile"
- resp, err := CallMethod("photos.get", params)
- if err != nil {
- fmt.Println("ERROR")
- os.Exit(1)
- }
- type JSONBody struct {
- Response struct {
- Count int `json:"count"`
- Items []struct {
- PhotoID int `json:"id"`
- } `json:"items"`
- } `json:"response"`
- }
- var body JSONBody
- json.Unmarshal(resp, &body);
- params1 := make(RequestParams, 300)
- if len(body.Response.Items[0].PhotoID) < 1 {
- fmt.Println("PhotoID: undefined")
- os.Exit(1)
- }
- msg := fmt.Sprintf("%d", body.Response.Items[0].PhotoID)
- fmt.Println(msg)
- for i := 0; i < 100; i++ {
- params1["photo_id"] = msg
- _, err := CallMethod("photos.delete", params1)
- if err != nil {
- fmt.Println("ERROR photos.delete")
- }
- _, err1 := CallMethod("photos.restore", params1)
- if err1 != nil {
- fmt.Println("ERROR photos.restore")
- }
- time.Sleep(1000)
- }
- }
- func CallMethod(method string, params RequestParams) ([]byte, error) {
- params["access_token"] = token
- params["lang"] = "ru" // or..
- params["v"] = "5.60"
- resp, err := resty.R().
- SetQueryParams(params).
- Get("https://api.vk.com/method/" + method)
- if err != nil {
- fmt.Println("[Error] VK::CallMethod:", err.Error(), "WebResponse:", string(resp.Body()))
- return nil, err
- }
- type JSONBody struct {
- Error map[string]interface{} `json:"error"`
- }
- var body JSONBody
- if err := json.Unmarshal(resp.Body(), &body); err != nil {
- fmt.Println("[Error] VK::CallMethod:", err.Error(), "WebResponse:", string(resp.Body()))
- return nil, err
- }
- if body.Error != nil {
- if errorMsg, exists := body.Error["error_msg"].(string); exists {
- fmt.Println("[Error] VK::CallMethod:", errorMsg, "WebResponse:", string(resp.Body()))
- return nil, errors.New(errorMsg)
- }
- fmt.Println("[Error] VK::CallMethod:", "Unknown error", "WebResponse:", string(resp.Body()))
- return nil, errors.New("Unknown error")
- }
- return resp.Body(), nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement