Files
py34/scraper/job.py

39 lines
993 B
Python
Raw Normal View History

2025-08-09 17:15:20 +02:00
from .config import config
from .block import Block
from typing import IO
from datetime import datetime, timedelta
import json
class Job:
def __init__(self, start, size, deadline = None):
self.start = start
self.size = size
if deadline is None:
self.deadline = (datetime.now() + timedelta(seconds=config["scraper"]["job-deadline"])).timestamp()
else:
self.deadline = deadline
def to_dict(self):
return {
"start": self.start,
"size": self.size,
"deadline": self.deadline,
}
def dump(job: Job, fd: IO[str | bytes]):
json.dump(job.to_dict(), fd)
def dumps(job: Job) -> str:
return json.dumps(job.to_dict(), fd)
def load(fd: IO[str | bytes]) -> Job:
data = json.load(fd)
return Job(data["start"], data["size"], data["deadline"])
def loads(data: str | bytes) -> Job:
data = json.loads(data)
return Job(data["start"], data["size"], data["deadline"])