From b34810cbff1c613290cf7d4282e242a58b1ddffb Mon Sep 17 00:00:00 2001 From: horus Date: Mon, 15 Mar 2021 18:16:38 +0100 Subject: Inline page in website --- index.html | 195 +++++++++++++++++++++++++++++++++++++++++++ public/css/prod.min.css | 6 -- public/img/paw-144.png | Bin 17742 -> 0 bytes public/img/paw-512.png | Bin 140909 -> 0 bytes public/img/paw-small.png | Bin 19354 -> 0 bytes public/index.php | 210 ----------------------------------------------- public/manifest.json | 20 ----- public/resolve.php | 31 ------- public/serviceworker.js | 62 -------------- resolve.php | 33 ++++++++ 10 files changed, 228 insertions(+), 329 deletions(-) create mode 100644 index.html delete mode 100644 public/css/prod.min.css delete mode 100644 public/img/paw-144.png delete mode 100644 public/img/paw-512.png delete mode 100644 public/img/paw-small.png delete mode 100644 public/index.php delete mode 100644 public/manifest.json delete mode 100644 public/resolve.php delete mode 100644 public/serviceworker.js create mode 100644 resolve.php diff --git a/index.html b/index.html new file mode 100644 index 0000000..22450db --- /dev/null +++ b/index.html @@ -0,0 +1,195 @@ +{% extends "snippets/layout.html" %} + +{% block description "Löst gekürzte URLs auf und entfernt Tracking Parameter. Für weniger Überwachung." %} + +{% block title "Untrack - Entfernt Tracking Parameter aus der URL" %} + +{% block css %} + .main { + font-size: inherit !important; + } + .hidden { + display: none; + } + .alert { + margin-bottom: 0; + } + .copy { + margin-top: 0.1rem; + margin-bottom: 1rem; + padding-left: 1.25rem; + padding-right: 1.25rem; + } + form { + margin-top: 1rem; + } +{% endblock %} + +{% block main %} +
+ +
+

+ Untrack +

+ Entfernt Tracking Parameter aus der URL +
+ +
+
+ + + +
+
+
+ + +
+
+ + + +
+ +
+
+ +
+ + +{% endblock %} diff --git a/public/css/prod.min.css b/public/css/prod.min.css deleted file mode 100644 index 4a674de..0000000 --- a/public/css/prod.min.css +++ /dev/null @@ -1,6 +0,0 @@ -/*! - * Bootstrap v4.5.2 (https://getbootstrap.com/) - * Copyright 2011-2020 The Bootstrap Authors - * Copyright 2011-2020 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}main{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}img{vertical-align:middle;border-style:none}table{border-collapse:collapse}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[role=button]{cursor:pointer}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}code{font-size:87.5%;color:#e83e8c;word-wrap:break-word}a>code{color:inherit}.container,.container-sm{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-sm{max-width:1140px}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:-moz-focusring{color:transparent;text-shadow:0 0 0 #495057}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}input[type=date].form-control,input[type=datetime-local].form-control,input[type=month].form-control,input[type=time].form-control{-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn:not(:disabled):not(.disabled){cursor:pointer}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary:focus{color:#fff;background-color:#0069d9;border-color:#0062cc;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info:focus{color:#fff;background-color:#138496;border-color:#117a8b;box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link:focus{text-decoration:underline}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-group{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group>.btn:hover{z-index:1}.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.form-control{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;min-width:0;margin-bottom:0}.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.form-control:focus{z-index:3}.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.form-control{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-link{font-weight:700}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217} .alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary .alert-link{color:#002752}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info .alert-link{color:#062c33}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1;-webkit-transform:none;transform:none}}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-info{border-color:#17a2b8!important}.d-none{display:none!important}.d-table{display:table!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-table{display:table!important}}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.p-0{padding:0!important}.px-0{padding-right:0!important}.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.px-1{padding-right:.25rem!important}.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.px-2{padding-right:.5rem!important}.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.px-3{padding-right:1rem!important}.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.px-4{padding-right:1.5rem!important}.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.px-5{padding-right:3rem!important}.px-5{padding-left:3rem!important}@media (min-width:576px){.p-sm-0{padding:0!important}.px-sm-0{padding-right:0!important}.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.px-sm-1{padding-right:.25rem!important}.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.px-sm-2{padding-right:.5rem!important}.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.px-sm-3{padding-right:1rem!important}.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.px-sm-4{padding-right:1.5rem!important}.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-5{padding-right:3rem!important}.px-sm-5{padding-left:3rem!important}}.text-wrap{white-space:normal!important}.text-left{text-align:left!important}@media (min-width:576px){.text-sm-left{text-align:left!important}}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-body{color:#212529!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}} diff --git a/public/img/paw-144.png b/public/img/paw-144.png deleted file mode 100644 index 1a56dda..0000000 Binary files a/public/img/paw-144.png and /dev/null differ diff --git a/public/img/paw-512.png b/public/img/paw-512.png deleted file mode 100644 index d67292f..0000000 Binary files a/public/img/paw-512.png and /dev/null differ diff --git a/public/img/paw-small.png b/public/img/paw-small.png deleted file mode 100644 index 847da33..0000000 Binary files a/public/img/paw-small.png and /dev/null differ diff --git a/public/index.php b/public/index.php deleted file mode 100644 index 00ede01..0000000 --- a/public/index.php +++ /dev/null @@ -1,210 +0,0 @@ - - - - - - - - Untrack - Entfernt Tracking Parameter aus der URL - - - - - - -
-
-

-
Untrack -
-
Entfernt Tracking Parameter aus der URL
-

-
- -
-
- - - -
-
-
- - -
-
- - - -
- -
-
- -
- - - - - diff --git a/public/manifest.json b/public/manifest.json deleted file mode 100644 index 80e2cf2..0000000 --- a/public/manifest.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "Untrack", - "short_name": "Untrack", - "description": "Entfernt Tracking Parameter aus der URL", - "icons": [{ - "src": "https://iamfabulous.de/favicon.ico" - }, { - "src": "/img/paw-144.png", - "type": "image/png", - "sizes": "144x144" - }, { - "src": "/img/paw-512.png", - "type": "image/png", - "sizes": "512x512" - }], - "start_url": ".", - "display": "standalone", - "background_color": "#171717", - "theme_color": "#fd8a02" -} diff --git a/public/resolve.php b/public/resolve.php deleted file mode 100644 index 95b985c..0000000 --- a/public/resolve.php +++ /dev/null @@ -1,31 +0,0 @@ -request('HEAD', $url, [ 'on_stats' => function( GuzzleHttp\TransferStats $stats ) use ( &$effectiveURL ){ $effectiveURL = $stats->getEffectiveUri(); }]) - ->getBody()->getContents(); - } catch(\Exception $e) { - return $url; - } - - return $effectiveURL->__toString(); -} - -function getURL() { - if ( empty($_REQUEST['url']) ) { - $data = json_decode(file_get_contents('php://input'), true); - return $data['url']; - } else { - return $_REQUEST['url']; - } -} - -echo json_encode( ['url' => resolveURL( getURL() ) ]); diff --git a/public/serviceworker.js b/public/serviceworker.js deleted file mode 100644 index f765d1c..0000000 --- a/public/serviceworker.js +++ /dev/null @@ -1,62 +0,0 @@ -self.addEventListener('install', function(event){ - console.log('Install'); -}); - -self.addEventListener('activate', function(event){ - console.log('Activate'); -}); - -var cacheName = 'untrack-v1'; -var successResponses = /^0|([123]\d\d)|(40[14567])|410$/; - -function fetchAndCache(request){ - console.log('fetchAndCache', request.url); - return fetch(request.clone()).then(function(response){ - console.log(request.method, request.url, response.status, response.type); - if (request.method == 'GET' && response && successResponses.test(response.status) && response.type == 'basic'){ - console.log('Cache', request.url); - caches.open(cacheName).then(function(cache){ - cache.put(request, response); - }); - } - return response.clone(); - }); -}; - -function cacheOnly(request){ - console.log('cacheOnly', request.url); - return caches.open(cacheName).then(function(cache){ - return cache.match(request); - }); -}; - -// Fastest strategy from https://github.com/GoogleChrome/sw-toolbox -self.addEventListener('fetch', function(event){ - var request = event.request; - var url = request.url; - console.log('Fetch', url); - event.respondWith(new Promise(function(resolve, reject){ - var rejected = false; - var reasons = []; - - var maybeReject = function(reason){ - reasons.push(reason.toString()); - if (rejected){ - reject(new Error('Both cache and network failed: "' + reasons.join('", "') + '"')); - } else { - rejected = true; - } - }; - - var maybeResolve = function(result){ - if (result instanceof Response){ - resolve(result); - } else { - maybeReject('No result returned'); - } - }; - - fetchAndCache(request.clone()).then(maybeResolve, maybeReject); - cacheOnly(request).then(maybeResolve, maybeReject); - })); -}); diff --git a/resolve.php b/resolve.php new file mode 100644 index 0000000..47933ac --- /dev/null +++ b/resolve.php @@ -0,0 +1,33 @@ +request('HEAD', $url, [ 'on_stats' => function( GuzzleHttp\TransferStats $stats ) use ( &$effectiveURL ){ $effectiveURL = $stats->getEffectiveUri(); }]) + ->getBody()->getContents(); + } catch(\Exception $e) { + return $url; + } + + return $effectiveURL->__toString(); +} + +function getURL() { + if ( empty($_REQUEST['url']) ) { + $data = json_decode(file_get_contents('php://input'), true); + return $data['url']; + } else { + return $_REQUEST['url']; + } +} + +function resolve() { + return json_encode( ['url' => resolveURL( getURL() ) ]); +} -- cgit v1.2.3