ai_member_xiaobian/scripts/fetch_and_check.py
2026-06-19 08:10:01 +08:00

45 lines
2.0 KiB
Python

import json
import urllib.request
import sys
import subprocess
# get token
cmd = "APP_ID=$(jq -r '.apps[0].appId' /root/.openclaw/credentials/xiaobian/config.json) && APP_SECRET=$(jq -r '.apps[0].appSecret' /root/.openclaw/credentials/xiaobian/config.json) && curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' -H 'Content-Type: application/json' -d \"{\\\"app_id\\\":\\\"$APP_ID\\\",\\\"app_secret\\\":\\\"$APP_SECRET\\\"}\" | jq -r '.tenant_access_token'"
token = subprocess.check_output(cmd, shell=True, text=True).strip()
spreadsheet_token = "KnTpsmp0XhYyXutZdxgcPFubnjh"
sheet_id = "eQUhYO"
url = f"https://open.feishu.cn/open-apis/sheets/v2/spreadsheets/{spreadsheet_token}/values/{sheet_id}!A1:H210"
req = urllib.request.Request(url)
req.add_header("Authorization", f"Bearer {token}")
req.add_header("Content-Type", "application/json")
try:
response = urllib.request.urlopen(req)
data = json.loads(response.read().decode('utf-8'))
values = data.get('data', {}).get('valueRange', {}).get('values', [])
# Let's print the last 15 rows to see the ending transition
last_rows = values[-20:]
for i, row in enumerate(values):
# We extract speaker and dialog text
if len(row) > 5:
speaker = row[4]
dialog = row[5]
if speaker or dialog:
pass # Just ensuring we don't print everything, maybe just the end.
print("--- Last 15 rows ---")
for i in range(max(0, len(values)-15), len(values)):
row = values[i]
speaker = row[4] if len(row) > 4 else ""
dialog = row[5] if len(row) > 5 else ""
if isinstance(dialog, list):
dialog = "".join([c.get('text', '') if isinstance(c, dict) else str(c) for c in dialog])
if isinstance(speaker, list):
speaker = "".join([c.get('text', '') if isinstance(c, dict) else str(c) for c in speaker])
print(f"Row {i+1}: [{speaker}] {dialog}")
except Exception as e:
print(f"Error fetching: {e}")