JolyJDIA

Untitled

Sep 13th, 2020 (edited)
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.65 KB | None | 0 0
  1. import com.google.gson.JsonElement;
  2. import com.vk.api.sdk.client.AbstractQueryBuilder;
  3. import com.vk.api.sdk.client.VkApiClient;
  4. import com.vk.api.sdk.client.actors.UserActor;
  5. import com.vk.api.sdk.exceptions.ApiException;
  6. import com.vk.api.sdk.exceptions.ClientException;
  7. import com.vk.api.sdk.httpclient.HttpTransportClient;
  8. import com.vk.api.sdk.objects.photos.responses.PhotoUploadResponse;
  9. import org.jetbrains.annotations.Nullable;
  10.  
  11. import java.io.File;
  12. import java.util.*;
  13.  
  14. public final class Main {
  15.     static final VkApiClient vkApiClient = new VkApiClient(new HttpTransportClient());
  16.     private static UserActor zabl;//Этот долбоеб бля
  17.     static String path;
  18.     static int albumId;
  19.  
  20.     private Main() {}
  21.  
  22.     /**
  23.      * {@value размер партии}
  24.      */
  25.     private static final int CHUNK = 20;
  26.  
  27.     public static void main(String[] args) throws InterruptedException, ClientException, ApiException {
  28.         initial();
  29.         File[] listFiles = new File(path).listFiles();
  30.         if(listFiles == null) {
  31.             System.out.println("И где путь?");
  32.             return;
  33.         }
  34.         if(listFiles.length == 0) {
  35.             System.out.println("И где мемы?");
  36.             return;
  37.         }
  38.         List<AbstractQueryBuilder> listUpload = new ArrayList<>();//Здесь я буду собирать ссылки для загрузки
  39.         for(int len = listFiles.length, i = 0; i < len; ++i) {
  40.             listUpload.add(vkApiClient.photos().getUploadServer(zabl).albumId(albumId));
  41.             System.out.println(listFiles[i]);
  42.             if(i % CHUNK == 0) {//Каждый чанк отправляю
  43.                 int s = i;
  44.                 List<AbstractQueryBuilder> list = new ArrayList<>();
  45.                 for (JsonElement o : Objects.requireNonNull(push(listUpload)).getAsJsonArray()) {
  46.                     PhotoUploadResponse photoQuery = vkApiClient.upload()
  47.                             .photo(o.getAsJsonObject().get("upload_url").getAsString(), listFiles[s++])
  48.                             .execute();
  49.                     list.add(vkApiClient.photos()
  50.                             .save(zabl)
  51.                             .albumId(albumId)
  52.                             .photosList(photoQuery.getPhotosList())
  53.                             .hash(photoQuery.getHash())
  54.                             .server(photoQuery.getServer())
  55.                     );
  56.                 }
  57.                 listUpload.clear();//очищаю старый ссылки
  58.                 push(list);
  59.             }
  60.             //на всякий случай
  61.             Thread.sleep(10);
  62.         }
  63.     }
  64.     @Nullable
  65.     static JsonElement push(List<AbstractQueryBuilder> list) {
  66.         System.out.println("push");
  67.         try {
  68.             return vkApiClient.execute().batch(zabl, list).execute();
  69.         } catch (ApiException | ClientException e) {
  70.             e.printStackTrace();
  71.         }
  72.         return null;
  73.     }
  74.     static void initial() {
  75.         try (Scanner scanner = new Scanner(System.in)) {
  76.             System.out.println("Введи айди своей стр: ");
  77.             int id = Integer.parseInt(scanner.nextLine());
  78.             //Просим пароль от пизды
  79.             System.out.println("Введи access_token от своей стр: ");
  80.             zabl = new UserActor(id, scanner.nextLine());
  81.             System.out.println("Введи путь к мемам: ");
  82.             path = scanner.nextLine();
  83.             System.out.println("Введи айди альбома: ");
  84.             albumId = Integer.parseInt(scanner.nextLine());
  85.         }
  86.     }
  87. }
  88.  
Add Comment
Please, Sign In to add comment