2023-04-01 02:37:33 +08:00
|
|
|
"""Module for BeyondHD (BHD) tracker."""
|
2022-10-29 23:19:09 +08:00
|
|
|
from json import JSONDecodeError
|
|
|
|
|
2022-08-15 09:41:33 +08:00
|
|
|
from modules import util
|
2021-12-28 03:53:24 +08:00
|
|
|
from modules.util import Failed
|
|
|
|
|
2022-08-15 09:41:33 +08:00
|
|
|
logger = util.logger
|
2023-04-01 02:37:33 +08:00
|
|
|
BASE_URL = "https://beyond-hd.me/api/"
|
2021-12-28 03:53:24 +08:00
|
|
|
|
2021-12-29 01:19:58 +08:00
|
|
|
|
2021-12-28 03:53:24 +08:00
|
|
|
class BeyondHD:
|
2023-04-01 02:37:33 +08:00
|
|
|
"""BeyondHD (BHD) tracker class."""
|
|
|
|
|
2021-12-28 03:53:24 +08:00
|
|
|
def __init__(self, config, params):
|
|
|
|
self.config = config
|
|
|
|
self.apikey = params["apikey"]
|
2022-08-21 10:17:51 +08:00
|
|
|
logger.secret(self.apikey)
|
2021-12-29 01:19:58 +08:00
|
|
|
json = {"search": "test"}
|
|
|
|
self.search(json)
|
2021-12-28 03:53:24 +08:00
|
|
|
|
|
|
|
def search(self, json, path="torrents/"):
|
2023-04-01 02:37:33 +08:00
|
|
|
"""Search BHD."""
|
|
|
|
url = f"{BASE_URL}{path}{self.apikey}"
|
2021-12-28 03:53:24 +08:00
|
|
|
json["action"] = "search"
|
2022-11-19 22:46:38 +08:00
|
|
|
logger.trace(url)
|
|
|
|
logger.trace(f"JSON: {json}")
|
2021-12-28 03:53:24 +08:00
|
|
|
try:
|
2022-11-19 22:46:38 +08:00
|
|
|
response = self.config.post(url, json=json, headers={"User-Agent": "Chrome"})
|
|
|
|
logger.trace(response)
|
2021-12-28 03:53:24 +08:00
|
|
|
response_json = response.json()
|
2023-04-01 02:37:33 +08:00
|
|
|
except JSONDecodeError as err:
|
2021-12-28 03:53:24 +08:00
|
|
|
if response.status_code >= 400:
|
2023-04-01 02:37:33 +08:00
|
|
|
raise Failed(err) from err
|
|
|
|
elif "Expecting value" in err:
|
|
|
|
logger.debug(err)
|
2021-12-28 03:53:24 +08:00
|
|
|
if response.status_code >= 400:
|
|
|
|
logger.debug(f"Response: {response_json}")
|
|
|
|
raise Failed(f"({response.status_code} [{response.reason}]) {response_json}")
|
|
|
|
if not response_json["success"]:
|
|
|
|
raise Failed(f"BHD Error: {response_json['status_message']}")
|
2021-12-29 01:19:58 +08:00
|
|
|
return response.json()
|