118
tests/test_push_with_thumbnail.py
Executable file
118
tests/test_push_with_thumbnail.py
Executable file
@@ -0,0 +1,118 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Test push notification with image thumbnail attachment"""
|
||||
|
||||
import sys
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent))
|
||||
sys.path.insert(0, str(Path(__file__).parent / 'modules'))
|
||||
|
||||
from modules.pushover_notifier import PushoverNotifier
|
||||
|
||||
def load_config():
|
||||
config_path = Path(__file__).parent / 'config' / 'settings.json'
|
||||
with open(config_path, 'r') as f:
|
||||
return json.load(f)
|
||||
|
||||
# Load config
|
||||
config = load_config()
|
||||
pushover_config = config.get('pushover', {})
|
||||
|
||||
# Create notifier
|
||||
notifier = PushoverNotifier(
|
||||
user_key=pushover_config.get('user_key'),
|
||||
api_token=pushover_config.get('api_token'),
|
||||
enabled=True
|
||||
)
|
||||
|
||||
# Test 1: Instagram with multiple images
|
||||
print("=" * 60)
|
||||
print("Test 1: Instagram Notification with Thumbnail")
|
||||
print("=" * 60)
|
||||
|
||||
# Find some actual images for testing
|
||||
instagram_images = [
|
||||
"/opt/immich/md/forums/PicturePub/Teri Hatcher & Eva Longoria - Desperate Housewives S08E14_ Get Out of My Life 2012, 80x/638100294_rere-12.jpg",
|
||||
"/opt/immich/md/forums/PicturePub/Teri Hatcher & Eva Longoria - Desperate Housewives S08E14_ Get Out of My Life 2012, 80x/638100582_rere-194.jpg",
|
||||
"/opt/immich/md/forums/PicturePub/Teri Hatcher & Eva Longoria - Desperate Housewives S08E14_ Get Out of My Life 2012, 80x/638100577_rere-191.jpg"
|
||||
]
|
||||
|
||||
# Simulate Instagram download - mixed content
|
||||
downloads = []
|
||||
|
||||
# Add 5 posts
|
||||
for i in range(5):
|
||||
downloads.append({
|
||||
'source': 'evalongoria',
|
||||
'content_type': 'post',
|
||||
'filename': f'post_{i}.jpg',
|
||||
'file_path': instagram_images[i % len(instagram_images)] # Use actual images
|
||||
})
|
||||
|
||||
# Add 3 stories
|
||||
for i in range(3):
|
||||
downloads.append({
|
||||
'source': 'evalongoria',
|
||||
'content_type': 'story',
|
||||
'filename': f'story_{i}.jpg',
|
||||
'file_path': instagram_images[i % len(instagram_images)]
|
||||
})
|
||||
|
||||
# Add 2 reels
|
||||
for i in range(2):
|
||||
downloads.append({
|
||||
'source': 'evalongoria',
|
||||
'content_type': 'reel',
|
||||
'filename': f'reel_{i}.mp4',
|
||||
'file_path': None # Videos won't be selected as thumbnails
|
||||
})
|
||||
|
||||
print(f"Sending Instagram notification with thumbnail...")
|
||||
print(f" - 5 posts + 3 stories + 2 reels = 10 items")
|
||||
print(f" - Random thumbnail will be selected from images")
|
||||
print()
|
||||
|
||||
success = notifier.notify_batch_download(
|
||||
platform='instagram',
|
||||
downloads=downloads,
|
||||
search_term=None
|
||||
)
|
||||
|
||||
print(f"{'✅' if success else '❌'} Instagram notification sent: {success}")
|
||||
print()
|
||||
|
||||
# Test 2: Forum notification with thumbnail
|
||||
print("=" * 60)
|
||||
print("Test 2: Forum Notification with Thumbnail")
|
||||
print("=" * 60)
|
||||
|
||||
forum_downloads = []
|
||||
for i, img_path in enumerate(instagram_images):
|
||||
forum_downloads.append({
|
||||
'source': 'HQCelebCorner',
|
||||
'content_type': 'image',
|
||||
'filename': Path(img_path).name,
|
||||
'file_path': img_path
|
||||
})
|
||||
|
||||
print(f"Sending forum notification with thumbnail...")
|
||||
print(f" - {len(forum_downloads)} images")
|
||||
print(f" - Search term: Eva Longoria")
|
||||
print()
|
||||
|
||||
success = notifier.notify_batch_download(
|
||||
platform='forum',
|
||||
downloads=forum_downloads,
|
||||
search_term='Eva Longoria'
|
||||
)
|
||||
|
||||
print(f"{'✅' if success else '❌'} Forum notification sent: {success}")
|
||||
print()
|
||||
|
||||
# Show stats
|
||||
print("=" * 60)
|
||||
print(f"Notification Stats: {notifier.get_stats()}")
|
||||
print("=" * 60)
|
||||
print()
|
||||
print("Check your Pushover app for notifications with thumbnails!")
|
||||
Reference in New Issue
Block a user