Spaces:
Sleeping
Sleeping
| # core/notifications.py | |
| import os | |
| import threading | |
| from linebot.v3.messaging import ( | |
| Configuration, | |
| ApiClient, | |
| MessagingApi, | |
| PushMessageRequest, | |
| TextMessage, | |
| ApiException | |
| ) | |
| def send_line_notification(message_text): | |
| """Sends a LINE notification to the specified user.""" | |
| access_token = os.environ.get('LINE_CHANNEL_ACCESS_TOKEN') | |
| user_id = os.environ.get('YOUR_LINE_USER_ID') | |
| if not access_token or not user_id: | |
| print("LINE Secrets not found. Skipping notification.") | |
| return | |
| configuration = Configuration(access_token=access_token) | |
| try: | |
| with ApiClient(configuration) as api_client: | |
| line_bot_api = MessagingApi(api_client) | |
| line_bot_api.push_message( | |
| PushMessageRequest(to=user_id, messages=[TextMessage(text=message_text)]) | |
| ) | |
| print("LINE notification sent successfully in background!") | |
| except ApiException as e: | |
| print(f"Error sending LINE notification in background: {e.body}") | |
| def send_line_notification_in_background(message_text): | |
| """Creates and starts a new thread to send a LINE notification, avoiding blocking the main app.""" | |
| notification_thread = threading.Thread( | |
| target=send_line_notification, | |
| args=(message_text,) | |
| ) | |
| notification_thread.start() |