diff --git a/Attrap.py b/Attrap.py index 478eeec942380aebbb976e7770cd0cbdff2a8085..8193924b7547beec5169b7daa8cf99ae65d5c06d 100644 --- a/Attrap.py +++ b/Attrap.py @@ -158,6 +158,7 @@ class Attrap: self.mastodon = None self.mastodon_prefix = '' self.mastodon_suffix = '' + self.safe_mode = False self.update_user_agent(user_agent) @@ -167,6 +168,12 @@ class Attrap: self.print_output(str(self.__class__.__name__)) + # Si le safe mode est activé, on configure un long délai entre chaque requête + if os.getenv('SAFE_MODE'): + self.safe_mode = True + logger.warning('ATTENTION: le safe mode est activé, configuration d\'un délai entre chaque requête') + self.sleep_time = 30 + def configure_mastodon(self, access_token, instance, mastodon_prefix, mastodon_suffix): """Configuration de Mastodon afin de publier un toot à chaque RAA détecté.""" if access_token and access_token != "" and instance and instance != "": @@ -189,9 +196,12 @@ class Attrap: def enable_tor(self, max_requests=0): """Active l'utilisation de Tor pour effectuer les requêtes.""" - self.tor_enabled = True - self.tor_max_requests = max_requests - self.tor_get_new_id() + if not self.safe_mode: + self.tor_enabled = True + self.tor_max_requests = max_requests + self.tor_get_new_id() + else: + logger.warning('ATTENTION: le safe mode est activé, Tor n\'a pas été activé') def disable_tor(self): """Désactive l'utilisation de Tor.""" diff --git a/README.md b/README.md index 3c4337b4d3dbfc0fd7fa7310083498839447096a..9048250dc299c0fb1749fdcd60c71383263c0027 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,8 @@ Les options suivantes peuvent être précisées, par un paramètre si l'utilitai | `-v` | `VERBOSE` | Si spécifié, relève le niveau de verbosité à INFO. | Non-spécifié | | `-vv` | `VVERBOSE` | Si spécifié, relève le niveau de verbosité à DEBUG. | Non-spécifié | +Vous pouvez également activer le safe mode en spécifiant la variable d'environnement `SAFE_MODE`. Cela désactive Tor et limite les requêtes à une toutes les 30 secondes. Cette option ne doit être utilisée qu'en cas de blocage généralisé de Tor. Attention : avec le safe mode, la CI se connecte directement au serveur, et son IP risque d'être bloquée si trop de requêtes sont lancées. Pensez donc à limiter le nombre de jobs qui s'exécutent en parallèle si vous devez activer ce mode. Les requêtes via Selenium ne sont pas impactées par le safe mode. + ## Administrations supportées - Préfecture de police de Paris (identifiant : `ppparis`)