-
- SignalServiceMessageSender messageSender = new SignalServiceMessageSender(
- BaseConfig.serviceConfiguration,
- null,
- username,
- account.getPassword(),
- account.getDeviceId(),
- account.getSignalProtocolStore(),
- BaseConfig.USER_AGENT,
- account.isMultiDevice(),
- Optional.fromNullable(messagePipe),
- Optional.fromNullable(unidentifiedMessagePipe),
- Optional.<SignalServiceMessageSender.EventListener>absent());
-
- System.out.println("Starting upload process...");
- Pair<byte[], StickerUploadAttributesResponse> responsePair = messageSender.getStickerUploadAttributes(stickers.size() + (uniqueCover ? 1 : 0));
- byte[] packKey = responsePair.first();
- StickerUploadAttributesResponse response = responsePair.second();
-
- System.out.println("Uploading manifest...");
- messageSender.uploadStickerManifest(manifest, packKey, response.getManifest());
-
- Map<Integer, StickerUploadAttributes> attrById = new HashMap<>();
-
- for (StickerUploadAttributes attr : response.getStickers()) {
- attrById.put(attr.getId(), attr);
- }
-
- for (int i = 0; i < pack.stickers.size(); i++) {
- System.out.println("Uploading sticker " + (i+1) + "/" + pack.stickers.size() + "...");
- StickerUploadAttributes attr = attrById.get(i);
- if (attr == null) {
- throw new StickerPackInvalidException("Upload attributes missing for id " + i);
- }
-
- byte[] data = readStickerDataFromPath(path, pack.stickers.get(i).file);
- messageSender.uploadSticker(new ByteArrayInputStream(data), data.length, packKey, attr);
- }
-
- if (uniqueCover) {
- System.out.println("Uploading unique cover...");
- StickerUploadAttributes attr = attrById.get(pack.stickers.size());
- if (attr == null) {
- throw new StickerPackInvalidException("Upload attributes missing for cover with id " + pack.stickers.size());
- }
-
- byte[] data = readStickerDataFromPath(path, pack.cover.file);
- messageSender.uploadSticker(new ByteArrayInputStream(data), data.length, packKey, attr);
- }
-
- return "https://signal.art/addstickers/#pack_id=" + response.getPackId() + "&pack_key=" + Hex.toStringCondensed(packKey).replaceAll(" ", "");