From 03c8cdbac2ce2ce41333124a30baa5b66b447eca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andrej=20Rama=C5=A1euski?= <andrej@x2.cz>
Date: Tue, 7 Feb 2023 23:25:45 +0100
Subject: [PATCH] Logo v QR

---
 VERSION                       |   2 +-
 lib/PZ/Controller/Shortcut.pm |  32 ++++++++++++++++----------------
 public/logo.png               | Bin 0 -> 40221 bytes
 templates/shortcuts.html.ep   |   1 +
 4 files changed, 18 insertions(+), 17 deletions(-)
 create mode 100644 public/logo.png

diff --git a/VERSION b/VERSION
index 73462a5..e70b452 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-2.5.1
+2.6.0
diff --git a/lib/PZ/Controller/Shortcut.pm b/lib/PZ/Controller/Shortcut.pm
index 199dd2a..310427f 100644
--- a/lib/PZ/Controller/Shortcut.pm
+++ b/lib/PZ/Controller/Shortcut.pm
@@ -3,6 +3,7 @@ use Mojo::Base 'Mojolicious::Controller', -signatures;
 
 use Data::Validate::URI qw(is_uri);
 use Image::PNG::QRCode 'qrpng';
+use GD;
 use Mojo::UserAgent;
 
 use constant SHORTCUT => qr/^[a-z\d\-]{1,32}$/;
@@ -19,19 +20,6 @@ sub redirect ($c) {
         return;
     }
 
-#    TRACKER:
-#    foreach my $tracker ( $c->trackers() ) {
-#        if ( $c->param($tracker) ) {
-#            $c->stash(
-#                url           => $shortcut->url,
-#                tracker_name  => $tracker,
-#                tracker_value => $c->param($tracker),
-#            );
-#            $c->render( 'tracker' );
-#            return;
-#        }
-#    }
-
     $shortcut->update({
         counter => $shortcut->counter + 1
     });
@@ -125,10 +113,22 @@ sub list ($c) {
 
 
 sub qr ($c) {
-    my $url = 'https://' . $c->config->{domain} . '/' . $c->stash->{shortcut};
-    my $png = qrpng (text => $url, level => 4, scale => 5);
+    my $url  = 'https://' . $c->config->{domain} . '/' . $c->stash->{shortcut};
+    $c->trace($url);
+
+    my $png  = qrpng (text => $url, level => 4, scale => 6);
+
+    my $qr   = GD::Image->new($png);
+    my $logo = GD::Image->new($c->app->home . '/public/logo.png');
+
+    $qr->trueColor(1);
+    $logo->trueColor(1);
+    $logo->transparent($logo->colorClosest($logo->rgb($logo->getPixel(0,0))));
+
+    $qr->copyMerge($logo,73,73,0,0,100,100,80);
+
     $c->res->headers->content_type('image/png');
-    $c->render( data => $png );
+    $c->render( data => $qr->png );
 }
 
 1;
diff --git a/public/logo.png b/public/logo.png
new file mode 100644
index 0000000000000000000000000000000000000000..1cfb676d57f1e9a2f7a7c79876f6262c9435c70a
GIT binary patch
literal 40221
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

literal 0
HcmV?d00001

diff --git a/templates/shortcuts.html.ep b/templates/shortcuts.html.ep
index 10d2b69..ff73b26 100644
--- a/templates/shortcuts.html.ep
+++ b/templates/shortcuts.html.ep
@@ -267,6 +267,7 @@
         },
 
         showInfo: function(shortcut) {
+            this.selectedShortcut = shortcut;
             this.selectedShortcut.full_url = 'https://<%= config->{domain} %>/'+ shortcut.shortcut ;
             this.shortcutInfoVisible = true;
             navigator.clipboard.writeText(this.selectedShortcut.full_url);
-- 
GitLab