mirror of
https://gitlab.gnome.org/World/Authenticator.git
synced 2025-03-03 16:24:40 +01:00
Replace zbar-rust with rqrr
This commit is contained in:
parent
8d9fde4662
commit
f9aaae6863
5 changed files with 13 additions and 84 deletions
34
Cargo.lock
generated
34
Cargo.lock
generated
|
@ -290,6 +290,7 @@ dependencies = [
|
|||
"qrencode",
|
||||
"rand",
|
||||
"ring",
|
||||
"rqrr",
|
||||
"rust-argon2",
|
||||
"scrypt",
|
||||
"search-provider",
|
||||
|
@ -300,7 +301,6 @@ dependencies = [
|
|||
"tracing-subscriber",
|
||||
"url",
|
||||
"uuid",
|
||||
"zbar-rust",
|
||||
"zeroize",
|
||||
"zip",
|
||||
]
|
||||
|
@ -802,26 +802,6 @@ version = "1.1.0"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a3d8a32ae18130a3c84dd492d4215c3d913c3b07c6b63c2eb3eb7ff1101ab7bf"
|
||||
|
||||
[[package]]
|
||||
name = "enum-ordinalize"
|
||||
version = "4.3.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "fea0dcfa4e54eeb516fe454635a95753ddd39acda650ce703031c6973e315dd5"
|
||||
dependencies = [
|
||||
"enum-ordinalize-derive",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "enum-ordinalize-derive"
|
||||
version = "4.3.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "0d28318a75d4aead5c4db25382e8ef717932d0346600cacae6357eb5941bc5ff"
|
||||
dependencies = [
|
||||
"proc-macro2",
|
||||
"quote",
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "enumflags2"
|
||||
version = "0.7.10"
|
||||
|
@ -2730,6 +2710,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|||
checksum = "f126a9b02152815d84315316e7a759ee18a216d057095d56d19cec68a428b385"
|
||||
dependencies = [
|
||||
"g2p",
|
||||
"image 0.25.4",
|
||||
"lru",
|
||||
]
|
||||
|
||||
|
@ -3723,17 +3704,6 @@ dependencies = [
|
|||
"windows-sys 0.59.0",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zbar-rust"
|
||||
version = "0.0.24"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f8f7bacc14b37fba9a631a76a5c87ba243ea31eebff12d592d320516472c4626"
|
||||
dependencies = [
|
||||
"enum-ordinalize",
|
||||
"libc",
|
||||
"pkg-config",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "zbus"
|
||||
version = "4.4.0"
|
||||
|
|
|
@ -35,6 +35,7 @@ prost = "0.13"
|
|||
qrencode = {version = "0.14", features = ["image"]}
|
||||
rand = "0.8"
|
||||
ring = "0.17"
|
||||
rqrr = { version = "0.9", default-features = false, features = ["img"] }
|
||||
rust-argon2 = {version = "2.0", default-features = false}
|
||||
scrypt = {version = "0.11", default-features = false}
|
||||
search-provider = {version = "0.10", default-features = false, features = ["tokio"]}
|
||||
|
@ -45,7 +46,6 @@ tracing = {version = "0.1", default-features = false}
|
|||
tracing-subscriber = {version = "0.3", default-features = false, features = ["fmt"]}
|
||||
url = "2.2"
|
||||
uuid = {version = "1.0", features = ["v4"]}
|
||||
zbar-rust = "0.0"
|
||||
zeroize = {version = "1", features = ["zeroize_derive"]}
|
||||
zip = { version = "2.1", features = ["aes-crypto"] }
|
||||
|
||||
|
|
|
@ -39,42 +39,6 @@
|
|||
]
|
||||
},
|
||||
"modules": [
|
||||
{
|
||||
"name": "zbar",
|
||||
"config-opts": [
|
||||
"--disable-doc",
|
||||
"--disable-video",
|
||||
"--enable-codes=qrcode",
|
||||
"--without-dbus",
|
||||
"--without-directshow",
|
||||
"--without-gir",
|
||||
"--without-graphicsmagick",
|
||||
"--without-gtk",
|
||||
"--without-imagemagick",
|
||||
"--without-jpeg",
|
||||
"--without-java",
|
||||
"--without-npapi",
|
||||
"--without-python",
|
||||
"--without-qt",
|
||||
"--without-qt5",
|
||||
"--without-xshm",
|
||||
"--without-xv"
|
||||
],
|
||||
"sources": [
|
||||
{
|
||||
"type": "archive",
|
||||
"url": "https://linuxtv.org/downloads/zbar/zbar-0.23.1.tar.gz",
|
||||
"sha256": "c72b19eb63f48781ae5ff1830236f4e753f4bd6418cd781aea1cd85d625b119e"
|
||||
},
|
||||
{
|
||||
"type": "script",
|
||||
"dest-filename": "autogen.sh",
|
||||
"commands": [
|
||||
"autoreconf -vfi -W none"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "authenticator",
|
||||
"buildsystem": "meson",
|
||||
|
|
|
@ -8,7 +8,6 @@ dependency('glib-2.0', version: '>= 2.56')
|
|||
dependency('gio-2.0', version: '>= 2.56')
|
||||
dependency('gtk4', version: '>= 4.10')
|
||||
dependency('libadwaita-1', version: '>=1.5.beta')
|
||||
dependency('zbar', version: '>= 0.20')
|
||||
dependency('gstreamer-1.0', version: '>= 1.18')
|
||||
dependency('gstreamer-base-1.0', version: '>= 1.18')
|
||||
dependency('gstreamer-plugins-base-1.0', version: '>= 1.18')
|
||||
|
|
|
@ -12,7 +12,6 @@ use gtk::{
|
|||
glib::{self, clone},
|
||||
prelude::*,
|
||||
};
|
||||
use image::GenericImageView;
|
||||
|
||||
use super::CameraRow;
|
||||
use crate::utils::spawn_tokio;
|
||||
|
@ -23,21 +22,18 @@ pub mod screenshot {
|
|||
pub fn scan(data: &[u8]) -> Result<String> {
|
||||
// remove the file after reading the data
|
||||
let img = image::load_from_memory(data)?;
|
||||
let img_data = img.to_luma8();
|
||||
let mut prepared_img = rqrr::PreparedImage::prepare(img_data);
|
||||
let grids = prepared_img.detect_grids();
|
||||
let mut decoded = Vec::new();
|
||||
|
||||
let (width, height) = img.dimensions();
|
||||
let img_data: Vec<u8> = img.to_luma8().to_vec();
|
||||
|
||||
let mut scanner = zbar_rust::ZBarImageScanner::new();
|
||||
|
||||
let results = scanner
|
||||
.scan_y800(&img_data, width, height)
|
||||
.map_err(|e| anyhow::format_err!(e))?;
|
||||
|
||||
if let Some(result) = results.first() {
|
||||
let content = String::from_utf8(result.data.clone())?;
|
||||
return Ok(content);
|
||||
if let Some(grid) = grids.first() {
|
||||
grid.decode_to(&mut decoded)?;
|
||||
} else {
|
||||
anyhow::bail!("Invalid QR code")
|
||||
}
|
||||
anyhow::bail!("Invalid QR code")
|
||||
|
||||
Ok(String::from_utf8(decoded)?)
|
||||
}
|
||||
|
||||
pub async fn capture(window: Option<gtk::Window>) -> Result<gio::File> {
|
||||
|
|
Loading…
Add table
Reference in a new issue