mirror of
https://github.com/simon987/od-database.git
synced 2025-04-20 10:56:47 +00:00
Exports are downloadable
This commit is contained in:
parent
0b1d76f478
commit
7ac7972fd6
20
app.py
20
app.py
@ -1,6 +1,7 @@
|
|||||||
from flask import Flask, render_template, redirect, request, flash, abort, Response
|
from flask import Flask, render_template, redirect, request, flash, abort, Response
|
||||||
import os
|
import os
|
||||||
import json
|
import json
|
||||||
|
import time
|
||||||
from database import Database, Website, InvalidQueryException
|
from database import Database, Website, InvalidQueryException
|
||||||
from flask_recaptcha import ReCaptcha
|
from flask_recaptcha import ReCaptcha
|
||||||
import od_util
|
import od_util
|
||||||
@ -23,6 +24,23 @@ app.jinja_env.globals.update(get_mime=od_util.get_mime)
|
|||||||
tm = TaskManager()
|
tm = TaskManager()
|
||||||
|
|
||||||
|
|
||||||
|
@app.template_filter("datetime_format")
|
||||||
|
def datetime_format(value, format='%Y-%m-%d %H:%M UTC'):
|
||||||
|
return time.strftime(format, time.gmtime(value))
|
||||||
|
|
||||||
|
|
||||||
|
@app.route("/dl")
|
||||||
|
def downloads():
|
||||||
|
|
||||||
|
try:
|
||||||
|
export_file_stats = os.stat("static/out.csv.xz")
|
||||||
|
except FileNotFoundError:
|
||||||
|
print("No export file")
|
||||||
|
export_file_stats = None
|
||||||
|
|
||||||
|
return render_template("downloads.html", export_file_stats=export_file_stats)
|
||||||
|
|
||||||
|
|
||||||
@app.route("/website/<int:website_id>/")
|
@app.route("/website/<int:website_id>/")
|
||||||
def website_info(website_id):
|
def website_info(website_id):
|
||||||
|
|
||||||
@ -109,7 +127,7 @@ def submit():
|
|||||||
|
|
||||||
@app.route("/enqueue", methods=["POST"])
|
@app.route("/enqueue", methods=["POST"])
|
||||||
def enqueue():
|
def enqueue():
|
||||||
if not recaptcha.verify():
|
if recaptcha.verify():
|
||||||
|
|
||||||
url = os.path.join(request.form.get("url"), "")
|
url = os.path.join(request.form.get("url"), "")
|
||||||
|
|
||||||
|
10
export.sh
10
export.sh
@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
sqlite3 -header -csv db.sqlite3 < export.sql > out.csv
|
sqlite3 -header -csv db.sqlite3 < export.sql > static/out.csv
|
||||||
echo "Exported $(wc -l < out.csv) files"
|
echo "Exported $(wc -l < static/out.csv) files"
|
||||||
rm out.csv.xz
|
rm static/out.csv.xz
|
||||||
xz out.csv
|
xz static/out.csv
|
||||||
echo "Compressed to $(stat --printf="%s" out.csv.xz) bytes"
|
echo "Compressed to $(stat --printf="%s" static/out.csv.xz) bytes"
|
37
templates/downloads.html
Normal file
37
templates/downloads.html
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
{% extends "layout.html" %}
|
||||||
|
{% set title = "Downloads - OD-Database" %}
|
||||||
|
{% set current_page = "dl" %}
|
||||||
|
|
||||||
|
{% block body %}
|
||||||
|
<div class="container">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-header">Downloads</div>
|
||||||
|
<div class="card-body">
|
||||||
|
|
||||||
|
<p>The entire database is exported to CSV every ±30min</p>
|
||||||
|
|
||||||
|
<table class="table table-striped">
|
||||||
|
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Description</th>
|
||||||
|
<th>Size</th>
|
||||||
|
<th>Date</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody>
|
||||||
|
{% if export_file_stats %}
|
||||||
|
<tr>
|
||||||
|
<td>out.csv.xz</td>
|
||||||
|
<td>{{ export_file_stats.st_size }}</td>
|
||||||
|
<td>{{ export_file_stats.st_mtime|datetime_format }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
</tbody>
|
||||||
|
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock body %}
|
@ -1,5 +1,5 @@
|
|||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
|
{% set current_page = "home" %}
|
||||||
{% set title = "OD-Database - Home" %}
|
{% set title = "OD-Database - Home" %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
|
@ -37,6 +37,9 @@
|
|||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link {{ "active" if current_page == "contribute" else "" }}" href="/contribute">Contribute</a>
|
<a class="nav-link {{ "active" if current_page == "contribute" else "" }}" href="/contribute">Contribute</a>
|
||||||
</li>
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link {{ "active" if current_page == "dl" else "" }}" href="/dl">Downloads</a>
|
||||||
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
|
{% set current_page = "search" %}
|
||||||
|
|
||||||
{% set title = "OD-Database - Search" %}
|
{% set title = "OD-Database - Search" %}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
{% set title = "OD-Database - Submit website" %}
|
{% set title = "OD-Database - Submit website" %}
|
||||||
|
{% set current_page = "submit" %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="container" >
|
<div class="container" >
|
||||||
@ -12,7 +13,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
{# {{ recaptcha.get_code()|safe }}#}
|
{{ recaptcha.get_code()|safe }}
|
||||||
</div>
|
</div>
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<input class="btn btn-primary" type="submit" value="Submit" title="Submit open directory">
|
<input class="btn btn-primary" type="submit" value="Submit" title="Submit open directory">
|
||||||
@ -23,8 +24,8 @@
|
|||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p class="text-muted">
|
<p class="text-muted">By submitting this form you agree that your IP address and User Agent will be
|
||||||
Note: TODO note
|
saved (for debugging purposes only).
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
{% extends "layout.html" %}
|
{% extends "layout.html" %}
|
||||||
{% set title = "OD-Datase - Websites" %}
|
{% set title = "OD-Datase - Websites" %}
|
||||||
|
{% set current_page = "website" %}
|
||||||
|
|
||||||
{% block body %}
|
{% block body %}
|
||||||
<div class="container">
|
<div class="container">
|
||||||
|
Loading…
x
Reference in New Issue
Block a user