MCPcopy Create free account
hub / github.com/OpenRaiser/NanoResearch / main

Function main

nanoresearch/feishu_bot.py:235–317  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

233# ═══════════════════════════════════════════════════════════════
234
235def main() -> None:
236 import ssl
237 import certifi
238
239 import websockets
240 if os.environ.get("NANORESEARCH_ALLOW_INSECURE_SSL") == "1":
241 logger.warning(
242 "NANORESEARCH_ALLOW_INSECURE_SSL=1: disabling Feishu WebSocket SSL verification"
243 )
244 ssl_context = ssl.create_default_context()
245 ssl_context.check_hostname = False
246 ssl_context.verify_mode = ssl.CERT_NONE
247
248 _original_connect = websockets.connect
249
250 def _connect_with_insecure_ssl(*args, **kwargs):
251 if 'ssl' not in kwargs:
252 kwargs['ssl'] = ssl_context
253 return _original_connect(*args, **kwargs)
254
255 websockets.connect = _connect_with_insecure_ssl
256
257 logging.basicConfig(
258 level=logging.INFO,
259 format="%(asctime)s [%(levelname)s] %(name)s: %(message)s",
260 )
261
262 app_id, app_secret = _load_feishu_credentials()
263 bot = FeishuBot(app_id, app_secret)
264
265 logger.info("NanoResearch 飞书助手启动中...")
266
267 def on_message(data: lark.im.v1.P2ImMessageReceiveV1) -> None:
268 try:
269 event = data.event
270 message = event.message
271 sender = event.sender
272
273 if message.message_type != "text":
274 return
275
276 chat_id = message.chat_id
277 message_id = message.message_id
278 sender_id = sender.sender_id.open_id if sender.sender_id else ""
279
280 try:
281 content = json.loads(message.content)
282 text = content.get("text", "")
283 except (json.JSONDecodeError, TypeError):
284 text = ""
285
286 logger.info("on_message: raw_content=%r text=%r", message.content, text[:200] if text else "")
287
288 if not text.strip():
289 return
290
291 bot.handle_message(chat_id, message_id, text, sender_id)
292

Callers 1

feishu_bot.pyFile · 0.70

Calls 5

_load_feishu_credentialsFunction · 0.85
FeishuBotClass · 0.85
_shutdown_handlerFunction · 0.85
getMethod · 0.80
registerMethod · 0.80

Tested by

no test coverage detected