remotes/1693045480750635534/spooky-22
Aevann1 2021-09-18 18:29:01 +02:00
parent efcbaccf18
commit 823cd977d6
20 changed files with 28 additions and 538 deletions

View File

@ -125,7 +125,7 @@ r=redis.Redis(
connection_pool=redispool
) if app.config["CACHE_REDIS_URL"] else None
db_session = scoped_session(sessionmaker(bind=_engine, query_cls=RetryingQuery))
db_session = scoped_session(sessionmaker(bind=_engine, query_cls=RetryingQuery, autoflush=False))
@app.before_request

View File

@ -50,41 +50,6 @@ def error_405(e, v):
else: return render_template('errors/405.html', v=v), 405
@app.errorhandler(409)
@auth_desired
def error_409(e, v):
if request.headers.get("Authorization"): return {"error": "409 Conflict"}, 409
else: return render_template('errors/409.html', v=v), 409
@app.errorhandler(410)
@auth_desired
def error_410(e, v):
if request.headers.get("Authorization"): return {"error": "410 Request Payload Too Large"}, 410
else: return render_template('errors/410.html', v=v), 410
@app.errorhandler(413)
@auth_desired
def error_413(e, v):
if request.headers.get("Authorization"): return {"error": "413 Image Size Too Large"}, 413
else: return render_template('errors/413.html', v=v), 413
@app.errorhandler(418)
@auth_desired
def error_418(e, v):
if request.headers.get("Authorization"): return {"error": "418 I'm A Teapot"}, 418
else: return render_template('errors/418.html', v=v), 418
@app.errorhandler(422)
@auth_desired
def error_422(e, v):
if request.headers.get("Authorization"): return {"error": "422 Unprocessable Entity"}, 422
else: return render_template('errors/422.html', v=v), 422
@app.errorhandler(429)
@auth_desired
def error_429(e, v):
@ -92,13 +57,6 @@ def error_429(e, v):
else: return render_template('errors/429.html', v=v), 429
@app.errorhandler(451)
@auth_desired
def error_451(e, v):
if request.headers.get("Authorization"): return {"error": "451 Unavailable For Legal Reasons"}, 451
else: return render_template('errors/451.html', v=v), 451
@app.errorhandler(500)
@auth_desired
def error_500(e, v):
@ -108,21 +66,6 @@ def error_500(e, v):
else: return render_template('errors/500.html', v=v), 500
@app.errorhandler(502)
@auth_desired
def error_502(e, v):
if request.headers.get("Authorization"): return {"error": "502 Bad Gateway"}, 502
else: return render_template('errors/502.html', v=v), 502
@app.errorhandler(503)
@auth_desired
def error_503(e, v):
if request.headers.get("Authorization"): return {"error": "503 Service Unavailable"}, 503
else: return render_template('errors/503.html', v=v), 503
@app.post("/allow_nsfw")
def allow_nsfw():

View File

@ -19,10 +19,6 @@
<!-- Font Awesome -->
<link href="/assets/fontawesome/css/all.css" rel="stylesheet"> <!--load all styles -->
<script data-search-pseudo-elements defer src="https://use.fontawesome.com/releases/latest/js/javascript.js"
integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7"
crossorigin="anonymous"></script>
<!-- {{'SITE_NAME' | app_config}} CSS -->
{% if v %}
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
@ -111,15 +107,7 @@
</div>
<!-- Bootstrap core JavaScript -->
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js"
integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"></script>
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<pre>

View File

@ -1,7 +0,0 @@
<!-- Bootstrap core JavaScript -->
<script
src="https://code.jquery.com/jquery-3.1.1.min.js"
integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

View File

@ -1,10 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<head>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
{% if v and v.agendaposter %}
<!--<script src="/assets/js/bug-min.js" type="text/javascript"></script>-->
<script type="text/javascript">
/*
Bug.js - https://github.com/Auz/Bug
@ -1379,31 +1379,6 @@
<script src="/assets/js/general26.js"></script>
<!-- ClipboardJS -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<!-- Instantiate clipboard by passing a string selector -->
<script type="text/javascript">
var clipboard = new ClipboardJS('.copy-link');
clipboard.on('success', function(e) {
jQuery(function($) {
$('#toast-success').toast('show');
})
console.log(e);
});
clipboard.on('error', function(e) {
jQuery(function($) {
$('#toast-error').toast('show');
})
console.log(e);
});
</script>
<!-- Mobile "install the app" tooltip -->
{% if request.path=='/' and g.system and g.timestamp>session.get('tooltip_last_dismissed',0)+60*60*24 and (not g.system.endswith('/chrome') and not g.system.endswith('/other')) and not g.system.endswith('/webview') %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>409 Conflict</title>
{% endblock %}
{% block pagetype %}error-409{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseymad.webp">
<pre></pre>
<h1 class="h5">409 Conflict</h1>
<p class="text-muted mb-5">There were no survivors.</p>
<div><a href="/" class="btn btn-primary">Go to frontpage</a></div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>410 Gone</title>
{% endblock %}
{% block pagetype %}error-410{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseythonk.webp">
<pre></pre>
<h1 class="h5">410 Gone</h1>
<p class="text-muted mb-5">There's nothing left here but a giant smouldering crater.</p>
<div><a href="/" class="btn btn-primary">Go to frontpage</a></div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>413 Request Entity Too Large</title>
{% endblock %}
{% block pagetype %}error-413{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseychonker.webp">
<pre></pre>
<h1 class="h5">413 Image Size Too Large</h1>
<p class="text-muted mb-5">There's a 1 MB limit to profile picture uploads, and a 16 MB limit to all other image uploads.</p>
<div><a href="/" class="btn btn-primary">Go to frontpage</a></div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>418 I'm A Teapot</title>
{% endblock %}
{% block pagetype %}error-418{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseytea.webp">
<pre></pre>
<h1 class="h5">418 I'm A Teapot</h1>
<p class="text-muted mb-5">You're on a new level of retardation if you somehow get this error. Do better.</p>
<div><a href="/" class="btn btn-primary">Go to frontpage</a></div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>422 Unprocessable Entity</title>
{% endblock %}
{% block pagetype %}error-422{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseylawlz.webp">
<pre></pre>
<h1 class="h5">422 Unprocessable Entity</h1>
<p class="text-muted mb-5">STOP BREAKING THINGS PLEASE WHY DO WE HAVE SO MANY ERROR CODES</p>
<div><a href="/" class="btn btn-primary">Go to frontpage</a></div>
</div>
</div>
</div>
{% endblock %}

View File

@ -1,21 +0,0 @@
{% extends "errors/default.html" %}
{% block title %}
<title>451 Unavailable For Legal Reasons</title>
{% endblock %}
{% block pagetype %}error-451{% endblock %}
{% block content %}
<div class="row justify-content-center">
<div class="col-10 col-md-5">
<div class="text-center px-3 my-8">
<img loading="lazy" src="/assets/images/emojis/marseyglow.webp">
<pre></pre>
<h1 class="h5">451 Unavailable For Legal Reasons</h1>
<p class="text-muted mb-5"><img loading="lazy" src=https://i.imgur.com/ykKSTmq.jpg width=500><BR><BR>fool.</p>
</div>
</div>
</div>
{% endblock %}

File diff suppressed because one or more lines are too long

View File

@ -1,126 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author" content="">
<link rel="icon" type="image/png" href="/assets/{{'SITE_NAME' | app_config}}/icon.webp">
<title>503 Service Unavailable</title>
<!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"
integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<!-- iOS webapp -->
<link rel="apple-touch-icon" href="/assets/{{'SITE_NAME' | app_config}}/icon.webp">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<meta name="apple-mobile-web-app-title" content="{{'SITE_NAME' | app_config}}">
<!-- {{'SITE_NAME' | app_config}} CSS -->
{% if v %}
<link rel="stylesheet" href="/assets/style/{{v.theme}}_{{v.themecolor}}.css">
{% if v.agendaposter %}<link rel="stylesheet" href="/assets/style/agendaposter.css">{% elif v.css %}<link rel="stylesheet" href="/@{{v.username}}/css">{% endif %}
{% else %}
<link rel="stylesheet" href="/assets/style/{{'DEFAULT_THEME' | app_config}}.css">
{% endif %}
<!-- Font Awesome -->
<link href="/assets/style/fa.css" rel="stylesheet">
</head>
<body id="error-503" class="">
<!--Header -->
<!-- Navigation -->
<nav class="navbar navbar-expand-md navbar-light bg-white shadow shadow-md fixed-top" id="navbar">
<div class="container">
<div class="flex-grow-1"><span class="text-primary navbar-brand">{{'SITE_NAME' | app_config}}</span></div>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive"
aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"><i class="fal fa-bars text-gray-400" style="font-size: 2rem;"></i></span>
</button>
<div class="collapse navbar-collapse" id="navbarResponsive">
</div>
</div>
</nav>
<!-- Page Content -->
<div class="container">
<div class="row justify-content-around" id="main-content-row">
<div class="col h-100 custom-gutters mt-0 mt-md-3" id="main-content-col">
<div class="row justify-content-center">
<div class="col-10">
<div class="text-center px-3 py-8">
<span class="fa-stack text-muted mb-5" style="font-size: 2.5rem;">
<img loading="lazy" src="/assets/images/emojis/marseydead.webp">
<pre></pre>
</span>
<h1 class="h5">503 Service Unavailable</h1>
<p class="text-muted">r{{'SITE_NAME' | app_config}} is unavailable.</p>
<p class="text-muted">HI IT'S CARP AGAIN<BR>I'm like 95% sure this error means Aevann is restarting the server to apply a change. But I think that's also 520/521? What causes a 503? No one knows. Wait like a minute (maybe two) and see if it's still happening. It shouldn't. Good luck!</p>
<button class="btn btn-primary" onclick="window.location.reload()">
Refresh
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- Bootstrap core JavaScript -->
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous" type="37cef32129ec2b1bc32e9226-text/javascript"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous" type="37cef32129ec2b1bc32e9226-text/javascript"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous" type="37cef32129ec2b1bc32e9226-text/javascript"></script>
<!-- Initialize BS 4 tool tips -->
<script src="https://ajax.cloudflare.com/cdn-cgi/scripts/7089c43e/cloudflare-static/rocket-loader.min.js" data-cf-settings="37cef32129ec2b1bc32e9226-|49" defer=""></script>
<pre>
</pre>
</body>
</html>

View File

@ -128,7 +128,8 @@
</div>
</div>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="/assets/js/general26.js"></script>

View File

@ -3,7 +3,8 @@
<html lang="en">
<head>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script>
//email change
@ -225,29 +226,6 @@
{% endblock %}
<!-- ClipboardJS -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<!-- Instantiate clipboard by passing a string selector -->
<script type="text/javascript">
var clipboard = new ClipboardJS('.copy-link');
clipboard.on('success', function(e) {
jQuery(function($) {
$('#toast-success').toast('show');
})
console.log(e);
});
clipboard.on('error', function(e) {
jQuery(function($) {
$('#toast-error').toast('show');
})
console.log(e);
});
</script>
<!--Post toasts -->
<div class="toast" id="toast-post-success" style="position: fixed; bottom: 1.5rem; margin: 0 auto; left: 0; right: 0; width: 275px; z-index: 1000" role="alert" aria-live="assertive" aria-atomic="true" data-animation="true" data-autohide="true" data-delay="5000">
<div class="toast-body bg-success text-center text-white">

View File

@ -201,30 +201,8 @@
{% block errorToasts %}
{% endblock %}
{% include "bootstrap.html" %}
<!-- ClipboardJS -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<!-- Instantiate clipboard by passing a string selector -->
<script type="text/javascript">
var clipboard = new ClipboardJS('.copy-link');
clipboard.on('success', function(e) {
jQuery(function($) {
$('#toast-clipboard-success').toast('show');
})
console.log(e);
});
clipboard.on('error', function(e) {
jQuery(function($) {
$('#toast-clipboard-error').toast('show');
})
console.log(e);
});
</script>
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="/assets/js/general26.js"></script>

View File

@ -2,7 +2,8 @@
<!DOCTYPE html>
<html lang="en">
<head>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script>
//Signup js

View File

@ -117,30 +117,9 @@
</div>
</div>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<!-- ClipboardJS -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<!-- Instantiate clipboard by passing a string selector -->
<script type="text/javascript">
var clipboard = new ClipboardJS('.copy-link');
clipboard.on('success', function(e) {
jQuery(function($) {
$('#toast-success').toast('show');
})
console.log(e);
});
clipboard.on('error', function(e) {
jQuery(function($) {
$('#toast-error').toast('show');
})
console.log(e);
});
</script>
<!-- {{'SITE_NAME' | app_config}} JS -->

View File

@ -192,18 +192,18 @@
{% block content %}
{% if p.award_count("shit") %}
<script src="/assets/js/bug-min.js" type="text/javascript"></script>
{% set minbugs = 10*p.award_count("shit") if p.award_count("shit") <= 5 else 50 %}
{% set maxbugs = 20*p.award_count("shit") if p.award_count("shit") <= 5 else 100 %}
<script type="text/javascript">
new BugController({
imageSprite: "/assets/images/fly-sprite.webp",
canDie: false,
minBugs: {{minbugs}},
maxBugs: {{maxbugs}},
mouseOver: "multiply"
});
</script>
<script src="/assets/js/bug-min.js" type="text/javascript"></script>
{% set minbugs = 10*p.award_count("shit") if p.award_count("shit") <= 5 else 50 %}
{% set maxbugs = 20*p.award_count("shit") if p.award_count("shit") <= 5 else 100 %}
<script type="text/javascript">
new BugController({
imageSprite: "/assets/images/fly-sprite.webp",
canDie: false,
minBugs: {{minbugs}},
maxBugs: {{maxbugs}},
mouseOver: "multiply"
});
</script>
{% endif %}
<script src="/assets/js/sparkle.min.js" type="text/javascript"></script>

View File

@ -2,9 +2,9 @@
<html lang="en">
<head>
{% include "bootstrap.html" %}
<script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous" type="37cef32129ec2b1bc32e9226-text/javascript"></script>
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src='/assets/js/bundle.js'></script>
@ -406,28 +406,9 @@
<script src="/assets/js/general26.js"></script>
<!-- ClipboardJS -->
<script src="https://cdn.jsdelivr.net/npm/clipboard@2/dist/clipboard.min.js"></script>
<!-- Instantiate clipboard by passing a string selector -->
<script>
var clipboard = new ClipboardJS('.copy-link');
clipboard.on('success', function(e) {
jQuery(function($) {
$('#toast-success').toast('show');
})
console.log(e);
});
clipboard.on('error', function(e) {
jQuery(function($) {
$('#toast-error').toast('show');
})
console.log(e);
});
document.onpaste = function(event) {
f=document.getElementById('file-upload');
files = event.clipboardData.files