Spaces:
Paused
Paused
| from flask import Flask, request, jsonify, send_from_directory | |
| import os | |
| import psutil | |
| import time | |
| import datetime | |
| import json | |
| app = Flask(__name__) | |
| # Define the path to static files | |
| static_dir = os.path.join(os.path.dirname(os.path.abspath(__file__))) | |
| def css(filename): | |
| return send_from_directory(os.path.join(static_dir, 'css'), filename) | |
| def js(filename): | |
| return send_from_directory(os.path.join(static_dir, 'js'), filename) | |
| def img(filename): | |
| return send_from_directory(os.path.join(static_dir, 'img'), filename) | |
| def index(): | |
| return send_from_directory(static_dir, 'index.html') | |
| def ai(): | |
| return send_from_directory(os.path.join(static_dir, 'views'), 'ai.html') | |
| def ai_file(filename): | |
| return send_from_directory(os.path.join(static_dir, 'ai'), filename) | |
| def info(): | |
| ip = request.remote_addr | |
| current_time = datetime.datetime.now().strftime("%H:%M:%S") | |
| return jsonify({'ip': ip, 'current_time': current_time}) | |
| # Define the visitor count routes | |
| visitor_count = 0 | |
| visitor_today = 0 | |
| last_update_date = datetime.datetime.now().date() | |
| visitor_total = 0 | |
| def update_visitor_counts(): | |
| global visitor_count, visitor_today, last_update_date, visitor_total | |
| allowed_paths = ['/ai', '/api', '/tool'] | |
| if request.path.startswith(tuple(allowed_paths)): | |
| current_date = datetime.datetime.now().date() | |
| if current_date != last_update_date: | |
| visitor_today = 0 | |
| last_update_date = current_date | |
| visitor_count += 1 | |
| visitor_today += 1 | |
| visitor_total += 1 | |
| if datetime.datetime.now().hour == 0 and datetime.datetime.now().minute == 0: | |
| reset_visitor_count() | |
| def count(): | |
| return jsonify({ | |
| 'visitor_count': visitor_count, | |
| 'visitor_today': visitor_today, | |
| 'visitor_total': visitor_total | |
| }) | |
| def reset_visitor_count(): | |
| global visitor_count, visitor_today, last_update_date | |
| visitor_count = 0 | |
| visitor_today = 0 | |
| last_update_date = datetime.datetime.now().date() | |
| return jsonify({'visitor_count': visitor_count, 'visitor_today': visitor_today}) | |
| # Define the status route | |
| def status(): | |
| uptime_seconds = int(time.time() - psutil.boot_time()) | |
| uptime = str(datetime.timedelta(seconds=uptime_seconds)) | |
| memory_free = psutil.virtual_memory().available | |
| memory_total = psutil.virtual_memory().total | |
| return jsonify({'runtime': uptime, 'memory': f'{memory_free} / {memory_total}'}) | |
| # Handle 404 errors | |
| def page_not_found(e): | |
| return send_from_directory(static_dir, '404.html'), 404 | |
| if __name__ == "__main__": | |
| app.run(host="0.0.0.0", port=7860, debug=True) |