added maintenance page

This commit is contained in:
2026-04-27 15:49:09 +02:00
parent f1ef55ce84
commit b64cfc7cef
7 changed files with 61575 additions and 1 deletions
Binary file not shown.
+1
View File
@@ -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})
+1
View File
@@ -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')
+19
View File
@@ -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 %}
+8
View File
@@ -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>
+48 -1
View File
@@ -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",
}
+61498
View File
File diff suppressed because it is too large Load Diff