From 6db312454fd6746d1230717df6aa8f7972ddb4ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Gruszczy=C5=84ski?= Date: Tue, 9 Dec 2025 22:07:09 +0100 Subject: [PATCH] only_active_users --- app.py | 32 ++++++++++ mail_template_firewall.html | 113 ++++++++++++++++++++++++++++++++++++ 2 files changed, 145 insertions(+) create mode 100644 mail_template_firewall.html diff --git a/app.py b/app.py index b7f23f0..50ed600 100644 --- a/app.py +++ b/app.py @@ -527,11 +527,17 @@ def main(): parser.add_argument('--mailing-all-users', action='store_true', help='Wyślij mailing do wszystkich użytkowników z poprawnym adresem e-mail') + parser.add_argument('--active-within-days', type=int, + help='Wyślij mailing do użytkowników aktywnych w ciągu ostatnich X dni') + args = parser.parse_args() inactive_range = None + + + if args.inactive_since: try: min_days, max_days = map(int, args.inactive_since.split('-')) @@ -664,6 +670,32 @@ def main(): ) return + if args.active_within_days: + users = get_users(db_config) + temp_domains_cache = load_temp_domains() + now_ts = int(datetime.now().timestamp()) + threshold = now_ts - args.active_within_days * 86400 + + candidates = [ + u for u in users + if u.get('access') and u['access'] >= threshold + and (not is_fake_email(u['mail'])) + and (not is_temp_email(u['mail'], temp_domains_cache)) + ] + + print(f"📨 Wysyłanie mailingu do {len(candidates)} aktywnych użytkowników z ostatnich {args.active_within_days} dni...") + + send_email_batch( + candidates, + smtp_config, + args.mails_per_pack, + args.time_per_pack, + dry_run=args.dry_run, + template_path=args.mail_template + ) + return + + if args.stats: from collections import Counter diff --git a/mail_template_firewall.html b/mail_template_firewall.html new file mode 100644 index 0000000..708c9ea --- /dev/null +++ b/mail_template_firewall.html @@ -0,0 +1,113 @@ + + + + + + Dziękujemy za Twoją aktywność w Unitra-Klubie + + + +
+ +

Witaj @user,

+ +

+ Dziękujemy, że jesteś aktywnym użytkownikiem Unitra-Klubu i regularnie zaglądasz na unitraklub.pl. +

+ +
+

Dziękujemy za Twoją aktywność!

+
    +
  • za udział w dyskusjach na forum i stronie unitraklub.pl,
  • +
  • za dzielenie się wiedzą, doświadczeniem i materiałami,
  • +
  • za dotychczasowe wsparcie i pomoc przy zbiórkach na rozwój klubu.
  • +
+

+ To właśnie dzięki takim osobom jak Ty nasza społeczność żyje, rośnie + i może dalej rozwijać pasję do sprzętu Unitra. +

+
+ +

+ Obecnie prowadzimy nową zbiórkę na firewall/router do zmodernizowanej sieci Unitra-Klub. + Jeśli chcesz i możesz nas wesprzeć, znajdziesz wszystkie informacje pod adresem: +

+ +

+ + + https://z.unitraklub.pl/zbiorka/14 + + +

+ +

+ Każda, nawet drobna wpłata, realnie pomaga w utrzymaniu i rozwoju infrastruktury klubu. +

+ +

Pozdrawiamy serdecznie,
Zespół administracyjny Unitra-Klub

+ + +
+ +