aboutsummaryrefslogtreecommitdiffstats
path: root/src/bbss/friends.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/bbss/friends.py')
-rw-r--r--src/bbss/friends.py16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/bbss/friends.py b/src/bbss/friends.py
index cd5e7cf..d0aa884 100644
--- a/src/bbss/friends.py
+++ b/src/bbss/friends.py
@@ -1,4 +1,6 @@
from .lists import BaseListFile, ListFileEntry, parse_listfile
+from .site import Site
+from . import DEFAULT_PATHS
from dataclasses import dataclass
from typing import cast, Optional
from collections.abc import Sequence
@@ -28,13 +30,19 @@ class FriendListFileEntry(ListFileEntry):
self.__setattr__('scheme', m.group('scheme') or None)
self.__setattr__('domain', m.group('domain'))
self.__setattr__('path', m.group('path').removesuffix('/'))
- self.__setattr__('url', (self.scheme if self.scheme else 'https') + '://' + self.domain + (self.path if self.path else '/BBSS') + '/')
+ self.__setattr__('url', (self.scheme if self.scheme else 'https') + '://' + self.domain + (self.path if self.path is not None else ""))
def exists(self) -> bool:
- return requests.head(self.url).ok
+ if self.path is not None:
+ return requests.head(self.url + "/sizes.txt").ok or requests.head(self.url + "/88x31/list.txt").ok
+ else:
+ for default in DEFAULT_PATHS:
+ if requests.head(default + "sizes.txt").ok or requests.head(default + "/88x31/list.txt").ok:
+ return True
+ return False
- def get(self) -> requests.Response:
- return requests.get(self.url)
+ def get(self) -> Site:
+ return Site(self.domain, self.path, scheme = self.scheme)
class FriendListFile(BaseListFile[FriendListFileEntry]):
def __init__(self, contents: str):