understanding commited on
Commit
20d73c7
·
verified ·
1 Parent(s): 0dca8ee

Create utils.py

Browse files
Files changed (1) hide show
  1. utils.py +37 -0
utils.py ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # utils.py
2
+ import logging
3
+ import numpy as np
4
+ from PIL import Image
5
+ from hydrogram import filters
6
+ from hydrogram.types import Message
7
+
8
+ from config import Config # Import ADMIN_IDS from config
9
+
10
+ logger = logging.getLogger(__name__)
11
+
12
+ # --- Admin Check Filter ---
13
+ async def admin_filter_func(_, __, message: Message):
14
+ if message.from_user and message.from_user.id in Config.ADMIN_IDS:
15
+ logger.debug(f"Message from admin user {message.from_user.id} allowed.")
16
+ return True
17
+ elif message.from_user:
18
+ logger.info(f"Message from non-admin user {message.from_user.id} (name: {message.from_user.first_name}) blocked by admin filter.")
19
+ return False
20
+ else:
21
+ logger.debug("Message without from_user blocked by admin filter.")
22
+ return False
23
+
24
+ is_admin = filters.create(admin_filter_func, name="AdminFilter")
25
+
26
+ # --- Image Helper Functions ---
27
+ def add_noise_to_image(img: Image.Image, intensity: float = 0.02) -> Image.Image:
28
+ try:
29
+ if img.mode != 'RGB': img = img.convert('RGB')
30
+ img_array = np.array(img, dtype=np.float32) / 255.0
31
+ noise = np.random.randn(*img_array.shape) * intensity
32
+ noisy_img_array = np.clip(img_array + noise, 0.0, 1.0)
33
+ noisy_img = Image.fromarray((noisy_img_array * 255).astype(np.uint8), 'RGB')
34
+ return noisy_img
35
+ except Exception as e:
36
+ logger.error(f"Error adding noise: {e}", exc_info=True)
37
+ return img