114 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
	
		
			4.2 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| # Makefile pour le scraper agenda du libre
 | |
| 
 | |
| .PHONY: help install test demo monitor clean run setup-cron
 | |
| 
 | |
| # Configuration par défaut
 | |
| API_URL ?= https://api.openeventdatabase.org
 | |
| BATCH_SIZE ?= 1
 | |
| 
 | |
| help: ## Afficher l'aide
 | |
| 	@echo "🔧 Scraper Agenda du Libre - Commandes disponibles"
 | |
| 	@echo "=================================================="
 | |
| 	@echo ""
 | |
| 	@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "  \033[36m%-15s\033[0m %s\n", $$1, $$2}'
 | |
| 	@echo ""
 | |
| 	@echo "💡 Variables d'environnement:"
 | |
| 	@echo "  API_URL     URL de l'API OEDB (défaut: https://api.openeventdatabase.org)"
 | |
| 	@echo "  BATCH_SIZE  Taille des batches (défaut: 1)"
 | |
| 	@echo ""
 | |
| 	@echo "📝 Exemples:"
 | |
| 	@echo "  make run BATCH_SIZE=5"
 | |
| 	@echo "  make run API_URL=http://api.example.com:8080"
 | |
| 
 | |
| install: ## Installer les dépendances
 | |
| 	@echo "📦 Installation des dépendances..."
 | |
| 	sudo apt update
 | |
| 	sudo apt install -y python3-requests python3-icalendar
 | |
| 	@echo "✅ Dépendances installées"
 | |
| 
 | |
| test: ## Exécuter les tests
 | |
| 	@echo "🧪 Exécution des tests..."
 | |
| 	python3 test_agendadulibre.py
 | |
| 	python3 test_api_connection.py --api-url $(API_URL)
 | |
| 
 | |
| demo: ## Exécuter la démonstration
 | |
| 	@echo "🎭 Exécution de la démonstration..."
 | |
| 	python3 demo_agendadulibre.py
 | |
| 
 | |
| monitor: ## Afficher les statistiques
 | |
| 	@echo "📊 Affichage des statistiques..."
 | |
| 	python3 monitor_agendadulibre.py
 | |
| 
 | |
| run: ## Exécuter le scraper
 | |
| 	@echo "🚀 Exécution du scraper..."
 | |
| 	python3 agendadulibre.py --api-url $(API_URL) --batch-size $(BATCH_SIZE)
 | |
| 
 | |
| run-verbose: ## Exécuter le scraper en mode verbeux
 | |
| 	@echo "🚀 Exécution du scraper en mode verbeux..."
 | |
| 	python3 agendadulibre.py --api-url $(API_URL) --batch-size $(BATCH_SIZE) --verbose
 | |
| 
 | |
| run-force: ## Exécuter le scraper en forçant le rechargement
 | |
| 	@echo "🚀 Exécution du scraper avec rechargement forcé..."
 | |
| 	python3 agendadulibre.py --api-url $(API_URL) --batch-size $(BATCH_SIZE) --force-refresh
 | |
| 
 | |
| run-cache-test: ## Tester le système de cache
 | |
| 	@echo "🔄 Test du système de cache..."
 | |
| 	python3 agendadulibre.py --api-url $(API_URL) --batch-size 1 --verbose
 | |
| 	@echo "   Premier appel terminé, deuxième appel (depuis cache)..."
 | |
| 	python3 agendadulibre.py --api-url $(API_URL) --batch-size 1 --verbose
 | |
| 
 | |
| setup-cron: ## Configurer la planification cron
 | |
| 	@echo "⏰ Configuration de la planification cron..."
 | |
| 	./setup_cron.sh
 | |
| 
 | |
| clean: ## Nettoyer les fichiers temporaires
 | |
| 	@echo "🧹 Nettoyage des fichiers temporaires..."
 | |
| 	rm -f agendadulibre_events.json
 | |
| 	rm -f agendadulibre_events.ics
 | |
| 	rm -f agendadulibre_scraper.log
 | |
| 	rm -f cron_agendadulibre.log
 | |
| 	@echo "✅ Nettoyage terminé"
 | |
| 
 | |
| status: ## Afficher le statut du système
 | |
| 	@echo "📊 Statut du système:"
 | |
| 	@echo "===================="
 | |
| 	@echo "📁 Fichier de données:"
 | |
| 	@if [ -f agendadulibre_events.json ]; then \
 | |
| 		SIZE=$$(stat -c%s agendadulibre_events.json 2>/dev/null || echo "0"); \
 | |
| 		echo "  ✅ Présent ($$SIZE octets)"; \
 | |
| 	else \
 | |
| 		echo "  ❌ Absent"; \
 | |
| 	fi
 | |
| 	@echo "📁 Fichier cache iCal:"
 | |
| 	@if [ -f agendadulibre_events.ics ]; then \
 | |
| 		SIZE=$$(stat -c%s agendadulibre_events.ics 2>/dev/null || echo "0"); \
 | |
| 		DATE=$$(stat -c%y agendadulibre_events.ics 2>/dev/null || echo "inconnue"); \
 | |
| 		echo "  ✅ Présent ($$SIZE octets)"; \
 | |
| 		echo "  📅 Modifié: $$DATE"; \
 | |
| 	else \
 | |
| 		echo "  ❌ Absent"; \
 | |
| 	fi
 | |
| 	@echo ""
 | |
| 	@echo "📋 Tâches cron:"
 | |
| 	@if crontab -l 2>/dev/null | grep -q agendadulibre; then \
 | |
| 		echo "  ✅ Tâches configurées:"; \
 | |
| 		crontab -l | grep agendadulibre | sed 's/^/    /'; \
 | |
| 	else \
 | |
| 		echo "  ❌ Aucune tâche configurée"; \
 | |
| 	fi
 | |
| 	@echo ""
 | |
| 	@echo "🔗 Connexion API:"
 | |
| 	@python3 -c "import requests; print('  ✅' if requests.get('$(API_URL)', timeout=5).status_code == 200 else '  ❌')" 2>/dev/null || echo "  ❌ API non accessible"
 | |
| 
 | |
| logs: ## Afficher les logs récents
 | |
| 	@echo "📋 Logs récents:"
 | |
| 	@echo "==============="
 | |
| 	@if [ -f agendadulibre_scraper.log ]; then \
 | |
| 		tail -20 agendadulibre_scraper.log; \
 | |
| 	else \
 | |
| 		echo "Aucun fichier de log trouvé"; \
 | |
| 	fi
 | |
| 
 | |
| check-deps: ## Vérifier les dépendances
 | |
| 	@echo "🔍 Vérification des dépendances..."
 | |
| 	@python3 -c "import requests, icalendar; print('✅ Toutes les dépendances sont disponibles')" || echo "❌ Dépendances manquantes - exécutez 'make install'"
 | 
