Example #1
0
def _store_page(
    pipeline: redis.client.Pipeline,
    date: str,
    expire: int,
    url: urllib.parse.ParseResult,
) -> None:
    key: str = f"stats:page:{date}"
    pipeline.zincrby(key, 1, url.path)
    pipeline.expireat(key, expire)
Example #2
0
def _store_browser(pipeline: redis.client.Pipeline, date: str,
                   expire: int) -> None:
    browser: Optional[str] = flask.request.user_agent.browser
    if browser is not None:
        browser_key: str = f"stats:browser:{date}"
        pipeline.zincrby(browser_key, 1, browser)
        pipeline.expireat(browser_key, expire)

        version: Optional[str] = flask.request.user_agent.version
        if version is not None:
            version_key: str = f"stats:{browser}:{date}"
            pipeline.zincrby(version_key, 1, version)
            pipeline.expireat(version_key, expire)
Example #3
0
def _store_referrer(pipeline: redis.client.Pipeline, date: str,
                    expire: int) -> None:
    referrer: Optional[str] = flask.request.referrer
    if referrer is not None:
        try:
            referrer_url: urllib.parse.ParseResult = urllib.parse.urlparse(
                flask.request.url)
        except:
            pass
        else:
            key: str = f"stats:referrers:{date}"
            pipeline.zincrby(key, 1, referrer_url.netloc)
            pipeline.expireat(key, expire)
Example #4
0
def _store_os(pipeline: redis.client.Pipeline, date: str, expire: int) -> None:
    os: Optional[str] = flask.request.user_agent.platform
    if os is not None:
        key: str = f"stats:os:{date}"
        pipeline.zincrby(key, 1, os)
        pipeline.expireat(key, expire)