blob: 63de4d1561f523883be1089991841583cf808134 (
plain) (
tree)
|
|
from .lists import ListFile, ListFileEntry, ListFileIterator
from dataclasses import dataclass
import requests
@dataclass(frozen=True)
class ButtonListFileEntry(ListFileEntry):
root: str
def url(self) -> str:
return self.root + "/" + self.entry
def exists(self) -> bool:
return requests.head(self.url()).ok
class ButtonListFileIterator(ListFileIterator):
def __next__(self) -> ButtonListFileEntry:
return super().__next__()
@dataclass(frozen=True)
class ButtonListFile(ListFile):
def __init__(self, contents: str, root: str):
super().__init__(contents)
self.root = root
@classmethod
def from_url(cls, url: str):
(root, _, _) = url.rpartition('/')
return cls(requests.get(url, stream = False).text, root)
|