added maintenance page
This commit is contained in:
Binary file not shown.
@@ -218,4 +218,5 @@ def update_view_counter(request, id, remote_ip, today):
|
|||||||
query = """
|
query = """
|
||||||
UPDATE entries SET view_count = view_count + 1, view_date = :today, view_ip = :remote_ip
|
UPDATE entries SET view_count = view_count + 1, view_date = :today, view_ip = :remote_ip
|
||||||
WHERE id = :id;"""
|
WHERE id = :id;"""
|
||||||
|
# import pdb;pdb.set_trace()
|
||||||
execute_query(request, query, {'id': id, 'remote_ip': remote_ip, 'today': today})
|
execute_query(request, query, {'id': id, 'remote_ip': remote_ip, 'today': today})
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ def includeme(config):
|
|||||||
config.add_route('image_edit', '/image_edit/{filename}')
|
config.add_route('image_edit', '/image_edit/{filename}')
|
||||||
config.add_route('login', '/login')
|
config.add_route('login', '/login')
|
||||||
config.add_route('logout', '/logout')
|
config.add_route('logout', '/logout')
|
||||||
|
config.add_route('maintenance', '/maintenance')
|
||||||
config.add_route('related_edit', '/related_edit/{topic}/{id}/{id_related}')
|
config.add_route('related_edit', '/related_edit/{topic}/{id}/{id_related}')
|
||||||
config.add_route('settings', '/settings')
|
config.add_route('settings', '/settings')
|
||||||
config.add_route('stats_pages', '/stats_pages')
|
config.add_route('stats_pages', '/stats_pages')
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
{% extends "layout.jinja2" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
|
||||||
|
<div class="card mb-0">
|
||||||
|
<div class="card-body">
|
||||||
|
<form id="search-form" class="form-horizontal" role="form" action="/maintenance" method="post">
|
||||||
|
|
||||||
|
<div class="mb-3">
|
||||||
|
<hr>
|
||||||
|
<button class="btn btn-primary" type="submit" name="form.submitted">Import view count from logs</button>
|
||||||
|
<hr>
|
||||||
|
<button class="btn btn-warning" type="submit" name="form.replace">Initialize title_url</button>
|
||||||
|
<hr>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
@@ -45,6 +45,14 @@
|
|||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if request.client_addr == '127.0.0.1' %}
|
||||||
|
<li class="sidebar-item mb-3">
|
||||||
|
<a class="sidebar-link" href=" {{request.route_url('maintenance') }} " aria-expanded="false">
|
||||||
|
<span><i class="ti ti-server fs-6"></i></span>
|
||||||
|
<span class="hide-menu">Maintenance BD</span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
{% endif %}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,7 @@
|
|||||||
from pyramid.view import view_config
|
from pyramid.view import view_config
|
||||||
from pyramid.httpexceptions import HTTPNotFound, HTTPFound
|
from pyramid.httpexceptions import HTTPNotFound, HTTPFound
|
||||||
|
|
||||||
|
import os
|
||||||
import markdown
|
import markdown
|
||||||
import datetime #<- will be used to set default dates on models
|
import datetime #<- will be used to set default dates on models
|
||||||
|
|
||||||
@@ -31,6 +33,7 @@ def blog(request):
|
|||||||
body_html = markdown.markdown(body, extensions=['footnotes'])
|
body_html = markdown.markdown(body, extensions=['footnotes'])
|
||||||
# lire les contenus correles
|
# lire les contenus correles
|
||||||
relateds = get_entries_related(request, entry.id)
|
relateds = get_entries_related(request, entry.id)
|
||||||
|
|
||||||
# incrementer le compteur de vues
|
# incrementer le compteur de vues
|
||||||
client_addr = request.client_addr
|
client_addr = request.client_addr
|
||||||
today = datetime.datetime.now()
|
today = datetime.datetime.now()
|
||||||
@@ -40,7 +43,7 @@ def blog(request):
|
|||||||
last_view = 'None'
|
last_view = 'None'
|
||||||
|
|
||||||
if client_addr != '127.0.0.1' and entry.view_ip != client_addr and last_view != str(today)[:13] and \
|
if client_addr != '127.0.0.1' and entry.view_ip != client_addr and last_view != str(today)[:13] and \
|
||||||
request.user_agent.find("spider") == 0 and request.user_agent.find("crawler") == 0 and request.user_agent.find("+http") == 0:
|
request.user_agent.find("spider") == -1 and request.user_agent.find("crawler") == -1 and request.user_agent.find("+http") == -1:
|
||||||
update_view_counter(request, blog_id, client_addr, today)
|
update_view_counter(request, blog_id, client_addr, today)
|
||||||
|
|
||||||
|
|
||||||
@@ -308,3 +311,47 @@ def stats_pages(request):
|
|||||||
'page_title': "Statistiques par topics",
|
'page_title': "Statistiques par topics",
|
||||||
'entries': entries,
|
'entries': entries,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@view_config(route_name='maintenance', renderer='../templates/maintenance.jinja2')
|
||||||
|
def maintenance(request):
|
||||||
|
# Import view counts from logs
|
||||||
|
# select timestamp_iso, remote_addr,request_path,user_agent from logs where status=200 and request_path like '/blog/%' order by timestamp_iso;
|
||||||
|
#
|
||||||
|
if 'form.submitted' in request.params:
|
||||||
|
# lire le fichier logs.txt
|
||||||
|
filename = os.path.join('/Users/phuoc/pyramid/cao_sunyata/', 'logs.txt')
|
||||||
|
with open(filename) as f:
|
||||||
|
n = 0
|
||||||
|
for line in f:
|
||||||
|
cols = line.split('|')
|
||||||
|
user_date = cols[0]
|
||||||
|
user_addr = cols[1]
|
||||||
|
path = cols[2]
|
||||||
|
blog_id = path.split('/')[2]
|
||||||
|
user_agent = cols[3]
|
||||||
|
|
||||||
|
# lire le blog
|
||||||
|
entry = get_entries_by_id(request, blog_id)
|
||||||
|
if entry:
|
||||||
|
if entry.view_date :
|
||||||
|
last_view = entry.view_date[:13]
|
||||||
|
else:
|
||||||
|
last_view = 'None'
|
||||||
|
|
||||||
|
# incrementer le view_count si ip et last view diffrents
|
||||||
|
if entry.view_ip != user_addr and last_view != user_date[:13].replace('T',' ') and \
|
||||||
|
user_agent.find("spider") == -1 and user_agent.find("crawler") == -1 and user_agent.find("+http") == -1:
|
||||||
|
update_view_counter(request, blog_id, user_addr, user_date)
|
||||||
|
n += 1
|
||||||
|
|
||||||
|
request.session.flash(str(n) + "view a été importé avec succès !", 'success')
|
||||||
|
|
||||||
|
# Initialize title_url with title urlify
|
||||||
|
if 'form.replace' in request.params:
|
||||||
|
update_entries_url(request)
|
||||||
|
request.session.flash("Le remplacement a été effectué avec succès !", 'success')
|
||||||
|
|
||||||
|
return {
|
||||||
|
'page_title': "Maintenance de BD",
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user