diff --git a/app/terraform/block_external.py b/app/terraform/block_external.py index ea1b5b7..da8f68f 100644 --- a/app/terraform/block_external.py +++ b/app/terraform/block_external.py @@ -5,6 +5,7 @@ import requests from app import app from app.extensions import db +from app.models.activity import Activity from app.models.mirrors import Proxy from app.terraform import BaseAutomation @@ -36,6 +37,7 @@ class BlockExternalAutomation(BaseAutomation): results[h2[i].text] = [] i += 1 + activities = [] for vp in results: if vp not in app.config['EXTERNAL_VANTAGE_POINTS']: continue @@ -54,7 +56,16 @@ class BlockExternalAutomation(BaseAutomation): if proxy.deprecated: print("Proxy already marked blocked") continue + activities.append(Activity( + activity_type="block", + text=(f"Proxy {p.url} for {p.origin.domain_name} detected blocked according to external source. " + "Rotation scheduled.") + )) proxy.deprecate(reason="external") + for a in activities: + db.session.add(a) db.session.commit() + for a in activities: + a.notify() return True, "" diff --git a/app/terraform/block_roskomsvoboda.py b/app/terraform/block_roskomsvoboda.py index 7e612e0..8f8b65a 100644 --- a/app/terraform/block_roskomsvoboda.py +++ b/app/terraform/block_roskomsvoboda.py @@ -4,6 +4,7 @@ from typing import Tuple, List import requests from app.extensions import db +from app.models.activity import Activity from app.models.mirrors import Proxy from app.terraform import BaseAutomation @@ -14,6 +15,7 @@ class BlockRoskomsvobodaAutomation(BaseAutomation): frequency = 90 def automate(self, full: bool = False) -> Tuple[bool, str]: + activities = [] proxies: List[Proxy] = Proxy.query.filter( Proxy.deprecated == None, Proxy.destroyed == None @@ -30,5 +32,14 @@ class BlockRoskomsvobodaAutomation(BaseAutomation): print("Proxy already marked blocked") continue p.deprecate(reason="roskomsvoboda") + activities.append(Activity( + activity_type="block", + text=(f"Proxy {p.url} for {p.origin.domain_name} detected blocked according to RosKomSvoboda. " + "Rotation scheduled.") + )) + for a in activities: + db.session.add(a) db.session.commit() + for a in activities: + a.notify() return True, ""