import org.asamk.signal.manager.storage.stickers.StickerPackId;
import org.asamk.signal.manager.util.IOUtils;
+import org.asamk.signal.manager.util.Utils;
+import org.whispersystems.signalservice.api.util.StreamDetails;
import org.whispersystems.signalservice.internal.util.Hex;
import java.io.BufferedWriter;
import java.io.File;
+import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
return getStickerPackManifestFile(stickerPackId).exists();
}
+ public JsonStickerPack retrieveManifest(StickerPackId stickerPackId) throws IOException {
+ try (final var inputStream = new FileInputStream(getStickerPackManifestFile(stickerPackId))) {
+ return new ObjectMapper().readValue(inputStream, JsonStickerPack.class);
+ }
+ }
+
+ public StreamDetails retrieveSticker(final StickerPackId stickerPackId, final int stickerId) throws IOException {
+ final var stickerFile = getStickerPackStickerFile(stickerPackId, stickerId);
+ if (!stickerFile.exists()) {
+ return null;
+ }
+ return Utils.createStreamDetailsFromFile(stickerFile);
+ }
+
public void storeManifest(StickerPackId stickerPackId, JsonStickerPack manifest) throws IOException {
- try (OutputStream output = new FileOutputStream(getStickerPackManifestFile(stickerPackId))) {
+ try (final var output = new FileOutputStream(getStickerPackManifestFile(stickerPackId))) {
try (var writer = new BufferedWriter(new OutputStreamWriter(output, StandardCharsets.UTF_8))) {
new ObjectMapper().writeValue(writer, manifest);
}
public void storeSticker(StickerPackId stickerPackId, int stickerId, StickerStorer storer) throws IOException {
createStickerPackDir(stickerPackId);
- try (OutputStream output = new FileOutputStream(getStickerPackStickerFile(stickerPackId, stickerId))) {
+ try (final var output = new FileOutputStream(getStickerPackStickerFile(stickerPackId, stickerId))) {
storer.store(output);
}
}