Spaces:
Sleeping
Sleeping
| from flask import Flask, request, jsonify | |
| from flask_cors import CORS | |
| import json | |
| from datetime import datetime | |
| import os | |
| app = Flask(__name__) | |
| CORS(app) | |
| # File paths for data storage | |
| DATA_DIR = "data" | |
| SCHEDULE_FILE = os.path.join(DATA_DIR, "schedule.json") | |
| ACTIVITY_LOG_FILE = os.path.join(DATA_DIR, "activity_logs.json") | |
| COMPLETION_FILE = os.path.join(DATA_DIR, "task_completion.json") | |
| # Create data directory if it doesn't exist | |
| os.makedirs(DATA_DIR, exist_ok=True) | |
| def load_json_file(filepath, default=None): | |
| if os.path.exists(filepath): | |
| with open(filepath, 'r') as f: | |
| return json.load(f) | |
| return default if default is not None else {} | |
| def save_json_file(filepath, data): | |
| with open(filepath, 'w') as f: | |
| json.dump(data, f, indent=2) | |
| # Initialize data files | |
| if not os.path.exists(SCHEDULE_FILE): | |
| save_json_file(SCHEDULE_FILE, {}) | |
| if not os.path.exists(ACTIVITY_LOG_FILE): | |
| save_json_file(ACTIVITY_LOG_FILE, {}) | |
| if not os.path.exists(COMPLETION_FILE): | |
| save_json_file(COMPLETION_FILE, {}) | |
| def handle_schedule(): | |
| if request.method == 'GET': | |
| schedule = load_json_file(SCHEDULE_FILE) | |
| return jsonify(schedule) | |
| else: | |
| schedule = request.json | |
| save_json_file(SCHEDULE_FILE, schedule) | |
| return jsonify({"message": "Schedule saved successfully"}) | |
| def handle_activity_log(): | |
| if request.method == 'GET': | |
| date = request.args.get('date') | |
| logs = load_json_file(ACTIVITY_LOG_FILE) | |
| if date: | |
| return jsonify(logs.get(date, [])) | |
| return jsonify(logs) | |
| else: | |
| date = request.json.get('date') | |
| entries = request.json.get('entries', []) | |
| logs = load_json_file(ACTIVITY_LOG_FILE) | |
| logs[date] = entries | |
| save_json_file(ACTIVITY_LOG_FILE, logs) | |
| return jsonify({"message": "Activity log saved successfully"}) | |
| def handle_task_completion(): | |
| if request.method == 'GET': | |
| date = request.args.get('date') | |
| completion_data = load_json_file(COMPLETION_FILE) | |
| if date: | |
| return jsonify(completion_data.get(date, {})) | |
| return jsonify(completion_data) | |
| else: | |
| date = request.json.get('date') | |
| task_id = request.json.get('taskId') | |
| is_completed = request.json.get('isCompleted') | |
| completion_data = load_json_file(COMPLETION_FILE) | |
| if date not in completion_data: | |
| completion_data[date] = {} | |
| completion_data[date][task_id] = is_completed | |
| save_json_file(COMPLETION_FILE, completion_data) | |
| return jsonify({"message": "Task completion status updated successfully"}) | |
| def export_data(): | |
| schedule = load_json_file(SCHEDULE_FILE) | |
| activity_logs = load_json_file(ACTIVITY_LOG_FILE) | |
| completion_data = load_json_file(COMPLETION_FILE) | |
| export_data = { | |
| "schedule": schedule, | |
| "activityLogArchive": activity_logs, | |
| "taskCompletion": completion_data | |
| } | |
| return jsonify(export_data) | |
| def import_data(): | |
| data = request.json | |
| if "schedule" in data: | |
| save_json_file(SCHEDULE_FILE, data["schedule"]) | |
| if "activityLogArchive" in data: | |
| save_json_file(ACTIVITY_LOG_FILE, data["activityLogArchive"]) | |
| if "taskCompletion" in data: | |
| save_json_file(COMPLETION_FILE, data["taskCompletion"]) | |
| return jsonify({"message": "Data imported successfully"}) | |
| if __name__ == '__main__': | |
| app.run(debug=True, host='0.0.0.0', port=7860) | |