0.2.1: fix no hour listening time conversion bug
This commit is contained in:
parent
8f0e846e95
commit
07146e1246
16
lfcircle.py
16
lfcircle.py
|
@ -36,7 +36,8 @@ from collections import Counter
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from functools import wraps
|
from functools import wraps
|
||||||
from sys import stderr
|
from sys import stderr, argv
|
||||||
|
from sys import exit as sysexit
|
||||||
from textwrap import indent
|
from textwrap import indent
|
||||||
from time import sleep
|
from time import sleep
|
||||||
from traceback import format_exception
|
from traceback import format_exception
|
||||||
|
@ -50,6 +51,7 @@ FORMAT_TELEGRAM_PREFIX: Final[str] = " "
|
||||||
USER_AGENT: Final[str] = (
|
USER_AGENT: Final[str] = (
|
||||||
"Mozilla/5.0 " "(compatible; lfcircle; https://github.com/markjoshwel/lfcircle)"
|
"Mozilla/5.0 " "(compatible; lfcircle; https://github.com/markjoshwel/lfcircle)"
|
||||||
)
|
)
|
||||||
|
__version__: Final[str] = "0.2.1"
|
||||||
|
|
||||||
GlobalTagCounter = dict[str, Counter[str]]
|
GlobalTagCounter = dict[str, Counter[str]]
|
||||||
|
|
||||||
|
@ -106,6 +108,10 @@ def handle_args() -> Behaviour:
|
||||||
info = __doc__.strip().split("\n", maxsplit=1)[0].split(":", maxsplit=1)
|
info = __doc__.strip().split("\n", maxsplit=1)[0].split(":", maxsplit=1)
|
||||||
default_behaviour = Behaviour()
|
default_behaviour = Behaviour()
|
||||||
|
|
||||||
|
if "--version" in argv:
|
||||||
|
print(__version__)
|
||||||
|
sysexit(0)
|
||||||
|
|
||||||
parser = ArgumentParser(
|
parser = ArgumentParser(
|
||||||
prog=info[0].strip(),
|
prog=info[0].strip(),
|
||||||
description=info[-1].strip(),
|
description=info[-1].strip(),
|
||||||
|
@ -517,15 +523,19 @@ def get_listening_report(
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def _int(number: str) -> int:
|
def _int(number: str, failable: bool = False) -> int:
|
||||||
n = (
|
n = (
|
||||||
number.replace(",", "")
|
number.replace(",", "")
|
||||||
.replace("scrobbles", "")
|
.replace("scrobbles", "")
|
||||||
.strip()
|
.strip()
|
||||||
.lstrip("days,")
|
.lstrip("days,")
|
||||||
|
.lstrip("days")
|
||||||
.rstrip("hours")
|
.rstrip("hours")
|
||||||
.strip()
|
.strip()
|
||||||
)
|
)
|
||||||
|
if failable and n == "":
|
||||||
|
return 0
|
||||||
|
else:
|
||||||
assert n.isnumeric()
|
assert n.isnumeric()
|
||||||
return int(n)
|
return int(n)
|
||||||
|
|
||||||
|
@ -558,7 +568,7 @@ def _get_listening_time_hours(page: BeautifulSoup) -> int:
|
||||||
days: int = _int(_d1.text)
|
days: int = _int(_d1.text)
|
||||||
|
|
||||||
assert (_h1 := fact.select_one(".quick-fact-data-detail")) is not None
|
assert (_h1 := fact.select_one(".quick-fact-data-detail")) is not None
|
||||||
hours: int = _int(_h1.text)
|
hours: int = _int(_h1.text, failable=True)
|
||||||
|
|
||||||
return (days * 24) + hours
|
return (days * 24) + hours
|
||||||
|
|
||||||
|
|
8
poetry.lock
generated
8
poetry.lock
generated
|
@ -1,4 +1,4 @@
|
||||||
# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand.
|
# This file is automatically @generated by Poetry 1.6.1 and should not be changed by hand.
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "beautifulsoup4"
|
name = "beautifulsoup4"
|
||||||
|
@ -346,13 +346,13 @@ type = ["mypy (>=1.8)"]
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "requests"
|
name = "requests"
|
||||||
version = "2.32.2"
|
version = "2.32.3"
|
||||||
description = "Python HTTP for Humans."
|
description = "Python HTTP for Humans."
|
||||||
optional = false
|
optional = false
|
||||||
python-versions = ">=3.8"
|
python-versions = ">=3.8"
|
||||||
files = [
|
files = [
|
||||||
{file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"},
|
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
|
||||||
{file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"},
|
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.dependencies]
|
[package.dependencies]
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "lfcircle"
|
name = "lfcircle"
|
||||||
version = "0.2.0"
|
version = "0.2.1"
|
||||||
description = "last.fm statistics generator for your friend circle!"
|
description = "last.fm statistics generator for your friend circle!"
|
||||||
authors = ["Mark Joshwel <mark@joshwel.co>"]
|
authors = ["Mark Joshwel <mark@joshwel.co>"]
|
||||||
license = "Unlicense"
|
license = "Unlicense"
|
||||||
|
|
Loading…
Reference in a new issue