forked from AFPy/afpy.org
Add /status route
This commit is contained in:
parent
ded4a53a46
commit
c1f7ec0878
26
afpy.py
26
afpy.py
|
@ -10,7 +10,7 @@ import docutils.writers.html5_polyglot
|
||||||
import feedparser
|
import feedparser
|
||||||
from dateutil.parser import parse
|
from dateutil.parser import parse
|
||||||
from flask import (Flask, abort, redirect, render_template, request,
|
from flask import (Flask, abort, redirect, render_template, request,
|
||||||
send_from_directory, url_for)
|
send_from_directory, url_for, jsonify)
|
||||||
from flask_cache import Cache
|
from flask_cache import Cache
|
||||||
from itsdangerous import BadSignature, URLSafeSerializer
|
from itsdangerous import BadSignature, URLSafeSerializer
|
||||||
from jinja2 import TemplateNotFound
|
from jinja2 import TemplateNotFound
|
||||||
|
@ -323,6 +323,30 @@ def jobs():
|
||||||
return redirect('https://plone.afpy.org/rss-jobs/RSS', code=307)
|
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')
|
@app.template_filter('rfc822_datetime')
|
||||||
def format_rfc822_datetime(timestamp):
|
def format_rfc822_datetime(timestamp):
|
||||||
return email.utils.formatdate(timestamp)
|
return email.utils.formatdate(timestamp)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user