1
Fork 0
mirror of https://github.com/thegeneralist01/twitter-openapi synced 2026-01-11 07:30:37 +01:00
twitter-openapi/test/python/test_serialize.py
ふぁ 0b34065deb
update github acction
Signed-off-by: ふぁ <yuki@yuki0311.com>
2023-07-30 05:55:44 +09:00

76 lines
2.3 KiB
Python

import json
import os
import logging
import base64
import openapi_client as pt
from pathlib import Path
logging.basicConfig(level=logging.DEBUG, format="%(asctime)s %(levelname)s %(message)s")
logger = logging.getLogger("test_serialize")
if Path("cookie.json").exists():
with open("cookie.json", "r") as f:
cookies = json.load(f)
else:
data = base64.b64decode(os.environ["TWITTER_SESSION"]).decode("utf-8")
cookies = json.loads(data)
cookies_str = "; ".join([f"{k}={v}" for k, v in cookies.items()])
with open("src/config/placeholder.json", "r") as f:
placeholder = json.load(f)
def getKey(snake_str):
components = snake_str.split("_")
return "".join(x.title() for x in components[1:])
api_conf = pt.Configuration(
api_key={
"ClientLanguage": "en",
"ActiveUser": "yes",
"AuthType": "OAuth2Session",
"CsrfToken": cookies["ct0"],
},
)
api_conf.access_token = "AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA"
api_client = pt.ApiClient(configuration=api_conf, cookie=cookies_str)
api_client.user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36"
error_count = 0
for x in [pt.DefaultApi, pt.TweetApi, pt.UserApi, pt.UserListApi]:
for props, fn in x.__dict__.items():
if not callable(fn):
continue
if props.startswith("__") or props.endswith("_with_http_info"):
continue
key = getKey(props)
logger.info(f"Try: {key}")
kwargs = {"path_query_id": placeholder[key]["queryId"]}
if placeholder[key].get("variables") is not None:
kwargs["variables"] = json.dumps(placeholder[key]["variables"])
if placeholder[key].get("features") is not None:
kwargs["features"] = json.dumps(placeholder[key]["features"])
if placeholder[key].get("fieldToggles") is not None:
kwargs["field_toggles"] = json.dumps(placeholder[key]["fieldToggles"])
try:
res = getattr(x(api_client), props)(**kwargs)
except Exception as e:
logger.error(f"{key}")
logger.error(e)
import traceback
logger.error(traceback.print_exc())
error_count += 1
if error_count > 0:
exit(1)