|
2 | 2 | import mimetypes
|
3 | 3 | import os
|
4 | 4 | import requests
|
| 5 | +from urllib import urlencode |
5 | 6 | import logging
|
6 | 7 | logger = logging.getLogger("captionbot")
|
7 | 8 |
|
@@ -42,21 +43,29 @@ def _upload(self, filename):
|
42 | 43 | return resp.json()
|
43 | 44 |
|
44 | 45 | def url_caption(self, image_url):
|
45 |
| - data = json.dumps({ |
| 46 | + data = { |
46 | 47 | "userMessage": image_url,
|
47 | 48 | "conversationId": self.conversation_id,
|
48 | 49 | "waterMark": self.watermark
|
49 |
| - }) |
| 50 | + } |
50 | 51 | headers = {
|
51 |
| - "Content-Type": "application/json" |
| 52 | + "Content-Type": "application/json; charset=utf-8" |
52 | 53 | }
|
53 | 54 | url = self.BASE_URL + "message"
|
54 |
| - resp = self.session.post(url, data=data, headers=headers, verify=False) |
55 |
| - logger.debug("url_caption: {}".format(resp)) |
56 |
| - self._resp_error(resp) |
57 |
| - res = json.loads(resp.json()) |
| 55 | + resp = self.session.post(url, data=json.dumps(data), headers=headers, verify=False) |
| 56 | + logger.info("get_caption: {}".format(resp)) |
| 57 | + if not resp.ok: |
| 58 | + return None |
| 59 | + get_url = url + "?" + urlencode(data) |
| 60 | + resp = self.session.get(get_url, verify=False) |
| 61 | + if not resp.ok: |
| 62 | + return None |
| 63 | + text = resp.text[1:-1].replace('\\"', '"') |
| 64 | + res = json.loads(text) |
| 65 | + logger.info(res) |
58 | 66 | self.watermark = res.get("WaterMark")
|
59 |
| - return res.get("UserMessage") |
| 67 | + msg = res.get("BotMessages")[1].replace('\\n','\n') |
| 68 | + return msg |
60 | 69 |
|
61 | 70 | def file_caption(self, filename):
|
62 | 71 | upload_filename = self._upload(filename)
|
|
0 commit comments