package cc.blynk.integration.tools;
import cc.blynk.server.core.BlockingIOProcessor;
import cc.blynk.server.db.DBManager;
import cc.blynk.server.db.model.Redeem;
import net.glxn.qrgen.core.image.ImageType;
import net.glxn.qrgen.javase.QRCode;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
/**
* The Blynk Project.
* Created by Dmitriy Dumanskiy.
* Created on 22.03.16.
*/
public class QRGenerator {
public static void main(String[] args) throws Exception {
DBManager dbManager = new DBManager("db.properties", new BlockingIOProcessor(1, 100), true);
List<Redeem> redeems;
redeems = generateQR(361, "/home/doom369/QR/blynk25", "Blynk", 25000);
dbManager.insertRedeems(redeems);
redeems = generateQR(1950, "/home/doom369/QR/blynk100", "Blynk", 100000);
dbManager.insertRedeems(redeems);
redeems = generateQR(90, "/home/doom369/QR/bluz", "Bluz", 100000);
dbManager.insertRedeems(redeems);
redeems = generateQR(210, "/home/doom369/QR/oak", "Digistump Oak", 100000);
dbManager.insertRedeems(redeems);
redeems = generateQR(160, "/home/doom369/QR/onion", "Onion Omega", 100000);
dbManager.insertRedeems(redeems);
}
private static List<Redeem> generateQR(int count, String outputFolder, String campaign, int reward) throws Exception {
List<Redeem> redeems = new ArrayList<>(count);
for (int i = 0; i < count; i++) {
String token = UUID.randomUUID().toString().replace("-", "");
Redeem redeem = new Redeem(token, campaign, reward);
redeems.add(redeem);
Path path = Paths.get(outputFolder, String.format("%d.jpg", i));
generateQR(redeem.formatToken(), path);
}
return redeems;
}
private static void generateQR(String text, Path outputFile) throws Exception {
try (OutputStream out = Files.newOutputStream(outputFile)) {
QRCode.from(text).to(ImageType.JPG).writeTo(out);
}
}
}