mirror of
https://github.com/EDCD/EDMarketConnector.git
synced 2025-04-14 00:07:14 +03:00
Added util directory and http util file
HTTP utils are anything generally useful for HTTP things, currently thats just compressing a string if its larger than a given number of bytes. These libraries are intended to be available to plugins
This commit is contained in:
parent
3814f9ebb9
commit
d65bcbbf0a
24
util/http.py
Normal file
24
util/http.py
Normal file
@ -0,0 +1,24 @@
|
||||
"""Utilities for dealing with HTTP."""
|
||||
from __future__ import annotations
|
||||
|
||||
from gzip import compress
|
||||
|
||||
__all__ = ['gzip']
|
||||
|
||||
|
||||
def gzip(data: str | bytes, max_size: int = 512, encoding='utf-8') -> tuple[bytes, bool]:
|
||||
"""
|
||||
Compress the given data if the max size is greater than specified.
|
||||
|
||||
:param data: The data to compress
|
||||
:param max_size: The max size of data, in bytes, defaults to 512
|
||||
:param encoding: The encoding to use if data is a str, defaults to 'utf-8'
|
||||
:return: the payload to send, and a bool indicating compression state
|
||||
"""
|
||||
if isinstance(data, str):
|
||||
data = data.encode(encoding=encoding)
|
||||
|
||||
if len(data) <= max_size:
|
||||
return data, False
|
||||
|
||||
return compress(data), True
|
Loading…
x
Reference in New Issue
Block a user