Merge pull request #30 from touilleMan/add-status-route
Add /status route
This commit is contained in:
commit
bd4068b320
27
afpy.py
27
afpy.py
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue
Block a user