#!/usr/bin/env python3
import json, mimetypes, os, sys, urllib.request

cfg = json.load(open('/root/.openclaw/openclaw.json'))
token = cfg['channels']['telegram']['botToken']
path = sys.argv[1]
caption = sys.argv[2] if len(sys.argv) > 2 else ''
chat_id = '1798094076'

boundary = '----KuzgunBoundary7f3a'
with open(path, 'rb') as f:
    content = f.read()

parts = []
def field(name, value):
    parts.append(('--' + boundary + '\r\n').encode())
    parts.append(('Content-Disposition: form-data; name="%s"\r\n\r\n' % name).encode())
    parts.append(value.encode() + b'\r\n')

field('chat_id', chat_id)
if caption:
    field('caption', caption)

parts.append(('--' + boundary + '\r\n').encode())
parts.append(('Content-Disposition: form-data; name="document"; filename="%s"\r\n' % os.path.basename(path)).encode())
parts.append(b'Content-Type: application/octet-stream\r\n\r\n')
parts.append(content + b'\r\n')
parts.append(('--' + boundary + '--\r\n').encode())

body = b''.join(parts)
req = urllib.request.Request(
    'https://api.telegram.org/bot%s/sendDocument' % token,
    data=body,
    headers={'Content-Type': 'multipart/form-data; boundary=' + boundary},
)
with urllib.request.urlopen(req) as r:
    res = json.load(r)
print('ok' if res.get('ok') else res)
if res.get('ok'):
    print('message_id:', res['result']['message_id'])
