mirror of
https://github.com/profanity-im/profanity.git
synced 2024-11-03 19:37:16 -05:00
implement working OMEMO QR code
TODO: We need to find a way to switch the colors of the QR code, so that more QR readers can detect it, without "blending" the edges of the QR code with the surrounding terminal window. Signed-off-by: swirl <swurl@swurl.xyz>
This commit is contained in:
parent
cf83976b51
commit
9a9a97868d
@ -9039,7 +9039,18 @@ gboolean
|
||||
cmd_omemo_qrcode(ProfWin* window, const char* const command, gchar** args)
|
||||
{
|
||||
#ifdef HAVE_OMEMO
|
||||
cons_show_omemo_qrcode("some text from me");
|
||||
if (connection_get_status() != JABBER_CONNECTED) {
|
||||
cons_show("You must be connected with an account to load OMEMO information.");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (!omemo_loaded()) {
|
||||
win_println(window, THEME_DEFAULT, "!", "You have not generated or loaded a cryptographic materials, use '/omemo gen'");
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
char* fingerprint = omemo_own_fingerprint(TRUE);
|
||||
cons_show_omemo_qrcode(fingerprint);
|
||||
return TRUE;
|
||||
#else
|
||||
cons_show("This version of Profanity has not been built with OMEMO support enabled");
|
||||
@ -9767,3 +9778,4 @@ cmd_mood(ProfWin* window, const char* const command, gchar** args)
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
@ -878,18 +878,16 @@ cons_show_omemo_qrcode(const char* const text)
|
||||
|
||||
ProfWin* console = wins_get_console();
|
||||
|
||||
char buf[(width * 4) + 1];
|
||||
memset(buf, 0, sizeof buf);
|
||||
for (size_t y = 0; y < width; y+=ZOOM_SIZE) {
|
||||
//size_t y_index = y * width;
|
||||
for (size_t x = 0; x < width; x+=ZOOM_SIZE) {
|
||||
if (x==0) {
|
||||
win_print(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B");
|
||||
} else {
|
||||
win_append(console, THEME_DEFAULT, "", "%s", (*data & 1) ? "A" : "B");
|
||||
}
|
||||
strcat(buf, (*data & 1) ? "\u2588\u2588" : "\u2800\u2800");
|
||||
|
||||
data++;
|
||||
}
|
||||
win_println(console, THEME_DEFAULT, "", "");
|
||||
win_println(console, THEME_DEFAULT, "", "%s", buf);
|
||||
memset(buf, 0, sizeof buf);
|
||||
}
|
||||
|
||||
QRcode_free(qrcode);
|
||||
@ -2928,3 +2926,4 @@ cons_remove_alert(ProfWin* window)
|
||||
g_list_free_full(item, g_free);
|
||||
free(win_name);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user