Esenjin 87eeeafdde ajout du "mode tortue"
pour les instances vraiment trop stricts avec leur api ...
2025-03-21 20:20:12 +01:00

90 lines
3.2 KiB
PHP

<?php
/**
* FavMasToKey - Configuration
*/
// Empêcher l'accès direct au fichier
if (!defined('FAVMASTOKEY')) {
die('Accès direct interdit');
}
// Environnement (development ou production)
define('ENVIRONMENT', 'development');
// Gestion des erreurs selon l'environnement
if (ENVIRONMENT === 'development') {
error_reporting(E_ALL);
ini_set('display_errors', 1);
// Activer la journalisation pour le débogage
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/../debug.log');
} else {
error_reporting(0);
ini_set('display_errors', 0);
}
// Configuration de l'application
$config = [
// Informations de l'application
'app_name' => 'FavMasToKey',
'app_description' => 'Outil de transfert des favoris de Mastodon vers Misskey',
'app_version' => '0.5.0', // Mise à jour de la version pour le mode tortue
// URL de base - Utilisée pour les liens dans l'application
'app_url' => 'https://concepts.esenjin.xyz/favmastokey', // Remplacez par l'URL exacte de votre application
// Paramètres Misskey API
'misskey_api_endpoint' => '/api/notes/favorites/create',
// Paramètres pour le traitement
'batch_size' => 2,
'timeout' => 90,
'max_retries' => 3,
'delay_between_requests' => 3000, // Délai normal entre les requêtes (en millisecondes)
'slow_mode_delay' => 30000, // Délai par défaut en mode lent (30 secondes)
'slow_mode_min' => 10000, // Délai minimum pour le mode lent (10 secondes)
'slow_mode_max' => 300000, // Délai maximum pour le mode lent (5 minutes)
'adaptive_delay_step' => 5000, // Pas d'augmentation du délai en cas de rate limiting (5 secondes)
'adaptive_delay_max_increases' => 3, // Nombre maximum d'augmentations automatiques du délai
// Paramètres pour le mode tortue
'tortoise_mode_delay' => 120000, // Délai par défaut en mode tortue (2 minutes)
'tortoise_mode_min' => 60000, // Délai minimum pour le mode tortue (1 minute)
'tortoise_mode_max' => 300000, // Délai maximum pour le mode tortue (5 minutes)
'auto_pause_duration' => 15, // Durée de pause automatique en minutes
];
// Session
session_start();
/**
* Affiche ou journalise des informations de débogage
*
* @param mixed $data Les données à déboguer
* @param string $title Titre optionnel pour faciliter l'identification des logs
* @param bool $log_to_file Journaliser dans un fichier plutôt que d'afficher
*/
function debug($data, $title = '', $log_to_file = false) {
if (ENVIRONMENT === 'development') {
$output = '';
if (!empty($title)) {
$output .= "=== {$title} ===\n";
}
if (is_array($data) || is_object($data)) {
$output .= print_r($data, true);
} else {
$output .= $data;
}
if ($log_to_file) {
error_log($output);
} else {
echo '<pre style="background:#111; color:#eee; padding:10px; border-radius:5px; overflow:auto; max-height:500px;">';
echo htmlspecialchars($output);
echo '</pre>';
}
}
}