Reverted qrread native module

This commit is contained in:
TheEssem 2020-09-11 15:22:25 -05:00
parent 81c291ffa7
commit 17b347761d
8 changed files with 511 additions and 80 deletions

View file

@ -21,7 +21,6 @@
#include "mirror.h"
#include "misc.h"
#include "motivate.h"
#include "qr.h"
#include "resize.h"
#include "reverse.h"
#include "scott.h"
@ -56,7 +55,6 @@ Napi::Object Init(Napi::Env env, Napi::Object exports)
exports.Set(Napi::String::New(env, "meme"), Napi::Function::New(env, Meme));
exports.Set(Napi::String::New(env, "mirror"), Napi::Function::New(env, Mirror));
exports.Set(Napi::String::New(env, "motivate"), Napi::Function::New(env, Motivate));
exports.Set(Napi::String::New(env, "qrread"), Napi::Function::New(env, QrRead));
exports.Set(Napi::String::New(env, "resize"), Napi::Function::New(env, Resize));
exports.Set(Napi::String::New(env, "reverse"), Napi::Function::New(env, Reverse));
exports.Set(Napi::String::New(env, "scott"), Napi::Function::New(env, Scott));

View file

@ -1,53 +0,0 @@
#include <napi.h>
#include <list>
#include <ZXing/ReadBarcode.h>
#include <ZXing/TextUtfEncoding.h>
#define STB_IMAGE_IMPLEMENTATION
#include <stb/stb_image.h>
using namespace std;
using namespace ZXing;
class QrReadWorker : public Napi::AsyncWorker {
public:
QrReadWorker(Napi::Function& callback, string in_path)
: Napi::AsyncWorker(callback), in_path(in_path) {}
~QrReadWorker() {}
void Execute() {
int width, height, channels;
unique_ptr<stbi_uc, void(*)(void*)> buffer(stbi_load(in_path.c_str(), &width, &height, &channels, 4), stbi_image_free);
auto result = ReadBarcode(width, height, buffer.get(), width * 4, 4, 0, 1, 2, { BarcodeFormat::QR_CODE });
if (result.isValid()) {
final = TextUtfEncoding::ToUtf8(result.text());
missing = false;
} else {
final = "";
}
}
void OnOK() {
Napi::Object object = Napi::Object::New(Env());
object.Set("qrText", final);
object.Set("missing", missing);
Callback().Call({Env().Undefined(), object});
}
private:
string in_path, final;
bool missing = true;
};
Napi::Value QrRead(const Napi::CallbackInfo &info)
{
Napi::Env env = info.Env();
Napi::Object obj = info[0].As<Napi::Object>();
Napi::Function cb = info[1].As<Napi::Function>();
string path = obj.Get("path").As<Napi::String>().Utf8Value();
QrReadWorker* qrReadWorker = new QrReadWorker(cb, path);
qrReadWorker->Queue();
return env.Undefined();
}

View file

@ -1,8 +0,0 @@
#ifndef ESMBOT_NATIVES_QR_H_
#define ESMBOT_NATIVES_QR_H_
#include <napi.h>
Napi::Value QrRead(const Napi::CallbackInfo& info);
#endif