Enable specification of expiration time

This commit is contained in:
grym 2022-12-02 15:49:23 -05:00
parent 8933388de7
commit 3c2f105c7b
1 changed files with 10 additions and 3 deletions

13
oxo.py
View File

@ -20,12 +20,17 @@ BASE_URL = typer.Option("https://0x0.st", envvar="OXO_BASE_URL")
err_console = Console(stderr=True, color_system=None)
def post_to(base_url: str, *, data: t.Iterable[t.Dict]) -> str:
def post_to(
base_url: str, *, data: t.Iterable[t.Dict], expires: t.Optional[int]
) -> str:
retval = []
with httpx.Client() as client:
for d in data:
if isinstance(d.get("file"), io.BufferedReader):
res = client.post(base_url, files=d)
if expires:
res = client.post(base_url, files=d, data={"expires": expires})
else:
res = client.post(base_url, files=d)
token = res.headers.get("x-token")
if token:
err_console.print(
@ -42,7 +47,9 @@ def post_to(base_url: str, *, data: t.Iterable[t.Dict]) -> str:
def post_files(base_url, files: t.List[Path], expires: t.Optional[int]):
return post_to(base_url, data=({"file": f.open("rb")} for f in files))
return post_to(
base_url, data=({"file": f.open("rb")} for f in files), expires=expires
)
def post_repost(base_url, urls: t.List[str]):