cwadayi commited on
Commit
99ecfd2
·
verified ·
1 Parent(s): a2c5df6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +3 -7
app.py CHANGED
@@ -5,10 +5,10 @@ from linebot.v3 import WebhookHandler
5
  from linebot.v3.exceptions import InvalidSignatureError
6
  from linebot.v3.messaging import (
7
  Configuration, ApiClient, MessagingApi,
8
- ReplyMessageRequest, TextMessage,
9
- # --- ✨✨✨ CORRECTION: ImageSendMessage is now directly in messaging ✨✨✨ ---
10
- ImageSendMessage
11
  )
 
 
12
  from linebot.v3.webhooks import MessageEvent, TextMessageContent
13
 
14
  import requests
@@ -118,12 +118,10 @@ def handle_message(event):
118
  line_bot_api = MessagingApi(api_client)
119
 
120
  if "臺灣地震畫圖" in user_message or "台灣地震畫圖" in user_message:
121
- # We must reply to the webhook post request quickly, so we send a "processing" message first.
122
  line_bot_api.reply_message_with_http_info(ReplyMessageRequest(
123
  reply_token=event.reply_token, messages=[TextMessage(text="🗺️ 收到指令!正在繪製地震分佈圖,請稍候...")]
124
  ))
125
 
126
- # Then we process the data and send the image with a push message.
127
  result = fetch_taiwan_earthquake_data_df()
128
  if isinstance(result, pd.DataFrame):
129
  filename = create_and_save_map(result)
@@ -135,7 +133,6 @@ def handle_message(event):
135
  line_bot_api.push_message(body={'to': event.source.user_id, 'messages': [TextMessage(text=result)]})
136
  return
137
 
138
- # --- Handle other text-based commands ---
139
  reply_text = ""
140
  if user_message == "/help":
141
  reply_text = """📖 地震預警dayichen 指令說明
@@ -161,7 +158,6 @@ def handle_message(event):
161
  if isinstance(result, pd.DataFrame):
162
  count = len(result)
163
  reply_text = f"🇹🇼 今年 ({datetime.now().year}年) 台灣區域顯著地震 (M≥5.0),共 {count} 筆:\n{'-'*20}\n"
164
- # To avoid exceeding LINE message length limits, we only show a few recent ones.
165
  for index, row in result.head(15).iterrows():
166
  time_str = row['time'].strftime('%Y-%m-%d %H:%M')
167
  reply_text += f"震級: {row['magnitude']:.1f} | 時間: {time_str} (UTC)\n地點: {row['place']}\n\n"
 
5
  from linebot.v3.exceptions import InvalidSignatureError
6
  from linebot.v3.messaging import (
7
  Configuration, ApiClient, MessagingApi,
8
+ ReplyMessageRequest, TextMessage
 
 
9
  )
10
+ # --- ✨✨✨ FINAL CORRECTION: Import ImageSendMessage from its direct model path ✨✨✨ ---
11
+ from linebot.v3.messaging.models.image_send_message import ImageSendMessage
12
  from linebot.v3.webhooks import MessageEvent, TextMessageContent
13
 
14
  import requests
 
118
  line_bot_api = MessagingApi(api_client)
119
 
120
  if "臺灣地震畫圖" in user_message or "台灣地震畫圖" in user_message:
 
121
  line_bot_api.reply_message_with_http_info(ReplyMessageRequest(
122
  reply_token=event.reply_token, messages=[TextMessage(text="🗺️ 收到指令!正在繪製地震分佈圖,請稍候...")]
123
  ))
124
 
 
125
  result = fetch_taiwan_earthquake_data_df()
126
  if isinstance(result, pd.DataFrame):
127
  filename = create_and_save_map(result)
 
133
  line_bot_api.push_message(body={'to': event.source.user_id, 'messages': [TextMessage(text=result)]})
134
  return
135
 
 
136
  reply_text = ""
137
  if user_message == "/help":
138
  reply_text = """📖 地震預警dayichen 指令說明
 
158
  if isinstance(result, pd.DataFrame):
159
  count = len(result)
160
  reply_text = f"🇹🇼 今年 ({datetime.now().year}年) 台灣區域顯著地震 (M≥5.0),共 {count} 筆:\n{'-'*20}\n"
 
161
  for index, row in result.head(15).iterrows():
162
  time_str = row['time'].strftime('%Y-%m-%d %H:%M')
163
  reply_text += f"震級: {row['magnitude']:.1f} | 時間: {time_str} (UTC)\n地點: {row['place']}\n\n"