import logging
import sqlite3
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# Cache for redundant SQL queries
_cache = {}
-##### Cache #####
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def key_exists(key: str) -> bool:
logger.debug("key='%s' - CALLED!", key)
import json
import sys
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# Private configration array, DO NOT access this directly. Please invoke
# config.get("foo") instead
_config = {}
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
with open("config.json") as f:
logger.debug("Loading configuration file ...")
_config = json.loads(f.read())
from fba.helpers import blacklist
from fba.helpers import domain as domain_helper
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# Cookies storage
_cookies = {}
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
def store(domain: str, cookies: dict):
logger.debug("domain='%s',cookies()=%d - CALLED!", domain, len(cookies))
domain_helper.raise_on(domain)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def has_key(lists: list, key: str, value: any) -> bool:
logger.debug("lists()=%d,key='%s',value[]='%s' - CALLED!", len(lists), key, type(value))
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def raise_on(domain: str) -> None:
logger.debug("domain='%s' - CALLED!", domain)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def is_json_response(response: requests.models.Response) -> bool:
logger.debug("response[]='%s' - CALLED!", type(response))
logger.warning("response.headers[content-type]='%s' is not a JSON type, below json() invocation may raise an exception", response.headers.get("content-type"))
data = list()
- if response.text.strip() != "":
+ raw = response.text.strip()
+
+ logger.debug("raw()=%d", len(raw))
+ if raw != "":
logger.debug("response.text()=%d is not empty, invoking response.json() ...", len(response.text))
try:
data = response.json()
import tempfile
import zc.lockfile
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# Lock file
lockfile = tempfile.gettempdir() + '/fba.lock'
LOCK = None
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
def acquire() -> None:
global LOCK
logger.debug("CALLED!")
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def instance(blocked: str, blocker: str, command: str, force: bool = False) -> bool:
logger.debug("blocked='%s',blocker='%s',command='%s',force='%s' - CALLED!", blocked, blocker, command, force)
from fba.helpers import tidyup
from fba.helpers import version
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# A list of relay software
relays = [
"activityrelay",
"moon-eyed"
]
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
@lru_cache
def alias(software: str) -> str:
logger.debug("software='%s'- CALLED!", software)
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
def reason(string: str) -> str:
logger.debug("string='%s' - CALLED!", string)
from fba.helpers import software as software_helper
-logging.basicConfig(level=logging.INFO)
-logger = logging.getLogger(__name__)
-
# Pattern instance for version numbers
-patterns = [
+_patterns = [
# semantic version number (with v|V) prefix)
re.compile(r"^(?P<version>v|V{0,1})(\.{0,1})(?P<major>0|[1-9]\d*)\.(?P<minor>0+|[1-9]\d*)(\.(?P<patch>0+|[1-9]\d*)(?:-(?P<prerelease>(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+(?P<buildmetadata>[0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?)?$"),
# non-sematic, e.g. 1.2.3.4
re.compile("^[a-f0-9]{7}$"),
]
+logging.basicConfig(level=logging.INFO)
+logger = logging.getLogger(__name__)
+#logger.setLevel(logging.DEBUG)
+
def remove(software: str) -> str:
logger.debug("software='%s' - CALLED!", software)
return software
match = None
- logger.debug("Checking %d patterns ...", len(patterns))
- for pattern in patterns:
+ logger.debug("Checking %d patterns ...", len(_patterns))
+ for pattern in _patterns:
# Run match()
match = pattern.match(version)