Skip to content
Snippets Groups Projects
Verified Commit 03c8cdba authored by Andrej Ramašeuski's avatar Andrej Ramašeuski
Browse files

Logo v QR

parent 16548016
No related branches found
No related tags found
No related merge requests found
Pipeline #11424 passed
2.5.1 2.6.0
...@@ -3,6 +3,7 @@ use Mojo::Base 'Mojolicious::Controller', -signatures; ...@@ -3,6 +3,7 @@ use Mojo::Base 'Mojolicious::Controller', -signatures;
use Data::Validate::URI qw(is_uri); use Data::Validate::URI qw(is_uri);
use Image::PNG::QRCode 'qrpng'; use Image::PNG::QRCode 'qrpng';
use GD;
use Mojo::UserAgent; use Mojo::UserAgent;
use constant SHORTCUT => qr/^[a-z\d\-]{1,32}$/; use constant SHORTCUT => qr/^[a-z\d\-]{1,32}$/;
...@@ -19,19 +20,6 @@ sub redirect ($c) { ...@@ -19,19 +20,6 @@ sub redirect ($c) {
return; 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({ $shortcut->update({
counter => $shortcut->counter + 1 counter => $shortcut->counter + 1
}); });
...@@ -126,9 +114,21 @@ sub list ($c) { ...@@ -126,9 +114,21 @@ sub list ($c) {
sub qr ($c) { sub qr ($c) {
my $url = 'https://' . $c->config->{domain} . '/' . $c->stash->{shortcut}; my $url = 'https://' . $c->config->{domain} . '/' . $c->stash->{shortcut};
my $png = qrpng (text => $url, level => 4, scale => 5); $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->res->headers->content_type('image/png');
$c->render( data => $png ); $c->render( data => $qr->png );
} }
1; 1;
public/logo.png

39.3 KiB

...@@ -267,6 +267,7 @@ ...@@ -267,6 +267,7 @@
}, },
showInfo: function(shortcut) { showInfo: function(shortcut) {
this.selectedShortcut = shortcut;
this.selectedShortcut.full_url = 'https://<%= config->{domain} %>/'+ shortcut.shortcut ; this.selectedShortcut.full_url = 'https://<%= config->{domain} %>/'+ shortcut.shortcut ;
this.shortcutInfoVisible = true; this.shortcutInfoVisible = true;
navigator.clipboard.writeText(this.selectedShortcut.full_url); navigator.clipboard.writeText(this.selectedShortcut.full_url);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment