adding list all urls, cleaning up

This commit is contained in:
nahaku
2024-02-11 11:19:11 +00:00
parent dac30732e0
commit f8d3346786
8 changed files with 68 additions and 21 deletions

1
.gitignore vendored
View File

@@ -1,3 +1,4 @@
tiny0/__pycache__
tiny0/database.db
venv
.venv

BIN
instance/database.db Normal file

Binary file not shown.

View File

@@ -10,6 +10,7 @@ from tiny0.config import WEBSITE_DOMAIN
def index():
# Create a instance of the form
form = URLForm()
base_url = url_for('index', _external=True).split('://')[1]
# If the form was valid
if form.validate_on_submit():
@@ -38,7 +39,7 @@ def index():
# Else if the form was invalid or not submitted
else:
# Return the index page with the form
return render_template("index.html", form=form)
return render_template("index.html", form=form, base_url=base_url)
# Shortened url route
@app.route("/<token>")
@@ -118,10 +119,26 @@ def report():
# Return the report page with the form
return render_template("report.html", form=form)
# Donate route
@app.route("/donate")
def donate():
return render_template("donate.html")
# url list_urls route
@app.route("/list_urls", methods=['GET', 'POST'])
def list_urls():
try:
#queried = URL.query.order_by(URL.id.desc()).all()
with app.app_context():
queried = (
db.session.query(URL, Reports.message)
.outerjoin(Reports, URL.token == Reports.token)
.order_by(URL.id.desc())
.all()
)
# Return the list_all page with the form
base_url = url_for('index', _external=True).split('://')[1]
return render_template("list_all.html", queried=queried,base_url=base_url)
# Else if the form was invalid or not submitted
except Exception as err:
# Return 500 error
return render_template("error.html", error_code=500, error_message=err), 500
# Removed url route
@app.route("/removed")

View File

@@ -1,10 +0,0 @@
{% extends "layout.html" %}
{% block body %}
<div class="donation">
<h1>Patreon</h1>
<h2><a href="https://www.patreon.com/xemeds" target="_blank">patreon.com/xemeds</a></h2>
<h1>Bitcoin</h1>
<p>1Mg55rPVuQ2P8zKsCcLdsmgqH24uLXfLbR</p>
</div>
{% endblock %}

View File

@@ -6,7 +6,7 @@
{{ form.hidden_tag() }}
{{ form.url(placeholder="Enter the URL here", autofocus=true, class="feedback-input") }}
<div class="token">
<h3>tiny0.cc/</h3>
<h3>{{ base_url }}</h3>
{{ form.token(placeholder="Use custom alias (optional)", class="feedback-input") }}
</div>
{{ form.submit(class="button") }}

View File

@@ -13,17 +13,17 @@
<script src="https://code.jquery.com/jquery-3.4.1.js"></script>
<script src="https://kit.fontawesome.com/a076d05399.js"></script>
<title>tiny0 - Custom URL Shortener</title>
<title>URL Shortener</title>
</head>
<body>
<nav>
<ul>
<li class="logo">tiny0 - URL Shortener</li>
<li class="logo">URL Shortener</li>
<li class="items"><a href="{{ url_for('index') }}">Shortener</a></li>
<li class="items"><a href="{{ url_for('list_urls') }}">List All</a></li>
<li class="items"><a href="{{ url_for('tracker') }}">Tracker</a></li>
<li class="items"><a href="{{ url_for('lookup') }}">Lookup</a></li>
<li class="items"><a href="{{ url_for('report') }}">Report</a></li>
<li class="items"><a href="{{ url_for('donate') }}">Donate</a></li>
<li class="btn"><a href="#"><i class="fas fa-bars"></i></a></li>
</ul>
</nav>

View File

@@ -0,0 +1,39 @@
{% extends "layout.html" %}
{% block body %}
<div class="url-form">
<h1>&#60; List of shortened URL's &#62;</h1>
<table>
<tr>
<th class="clicks"><b>Original URL</b></th>
<th class="clicks"><b>Shortened URL</b></th>
<th class="clicks"><b>Clicks</b></th>
<th class="clicks"><b>Reported?</b></th>
</tr>
{% if queried and base_url %}
{% for url, message in queried %}
<tr>
<td class="feedback-input">{{ url.url }}</td>
<td class="feedback-input">{{ base_url }}{{ url.token }}</td>
<td class="feedback-input">{{ url.clicks }}</td>
<td class="feedback-input">
{% if message %}
<span class="report-message" title="{{ message }}">Reported!</span>
{% endif %}
</td>
</tr>
{% endfor %}
{% endif %}
</table>
</div>
<style>
/* Add some CSS for the tooltip styling */
.report-message {
cursor: pointer;
}
</style>
{% endblock %}

View File

@@ -2,10 +2,10 @@
{% block body %}
<form method="POST" action="" class="url-form">
<h1>&#60 Report &#62</h1>
<h1>&#60 Report the link &#62</h1>
{{ form.hidden_tag() }}
{{ form.url(placeholder="Enter the short URL", autofocus=true, class="feedback-input") }}
{{ form.message(placeholder="Enter a short message explaining the reason of your report", class="feedback-input") }}
{{ form.message(placeholder="Enter a short message explaining the reason of you reporting the url", class="feedback-input") }}
{{ form.submit(class="button") }}
{% if form.errors %}
<div class="form-errors">