lookyloo/client/pylookyloo/api.py

33 lines
916 B
Python
Raw Normal View History

2019-01-30 16:01:55 +01:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from typing import Optional
2019-01-30 16:01:55 +01:00
from urllib.parse import urljoin
import requests
2019-01-30 16:01:55 +01:00
class Lookyloo():
def __init__(self, root_url: str='https://lookyloo.circl.lu/'):
self.root_url = root_url
if not self.root_url.endswith('/'):
self.root_url += '/'
self.session = requests.session()
@property
2020-03-16 17:18:06 +01:00
def is_up(self) -> bool:
2019-01-30 16:01:55 +01:00
r = self.session.head(self.root_url)
return r.status_code == 200
def enqueue(self, url: Optional[str]=None, **kwargs) -> str:
if not url and 'url' not in kwargs:
raise Exception(f'url entry required: {kwargs}')
if url:
to_send = {'url': url, **kwargs}
else:
to_send = kwargs
response = self.session.post(urljoin(self.root_url, 'submit'), json=to_send)
2019-01-30 16:01:55 +01:00
return urljoin(self.root_url, f'tree/{response.text}')