Merge pull request #30 from touilleMan/add-status-route

Add /status route
This commit is contained in:
Guillaume Ayoub 2018-06-10 19:37:26 +02:00 committed by GitHub
commit bd4068b320
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

27
afpy.py
View File

@ -9,7 +9,7 @@ import docutils.core
import docutils.writers.html5_polyglot
import feedparser
from dateutil.parser import parse
from flask import (Flask, abort, redirect, render_template, request,
from flask import (Flask, abort, jsonify, redirect, render_template, request,
send_from_directory, url_for)
from flask_cache import Cache
from itsdangerous import BadSignature, URLSafeSerializer
@ -323,6 +323,31 @@ def jobs():
return redirect('https://plone.afpy.org/rss-jobs/RSS', code=307)
def get_posts_stats():
stats = {}
for category in POSTS:
stats[category] = {}
for status in ('waiting', 'published'):
stats[category][status] = len(list(
(root / category / status).iterdir()))
return stats
def get_system_stats():
st = os.statvfs(__file__)
return {
"disk_free": st.f_bavail * st.f_frsize,
"disk_total": st.f_blocks * st.f_frsize,
"load_avg": os.getloadavg(),
}
@app.route('/status')
def status():
stats = {**get_posts_stats(), **get_system_stats()}
return jsonify(stats)
@app.template_filter('rfc822_datetime')
def format_rfc822_datetime(timestamp):
return email.utils.formatdate(timestamp)