scaruffi: move modules in a scaruffi package
This commit is contained in:
parent
74e14f6255
commit
eb9c666ba3
42
scaruffi/__main__.py
Normal file
42
scaruffi/__main__.py
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
"""A simple library to get data from scaruffi.com."""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from scaruffi import api
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser()
|
||||||
|
parser.add_argument("-v", "--verbose", action="store_true",
|
||||||
|
help="Print debug logs")
|
||||||
|
parser.add_argument("-r", "--ratings", type=int,
|
||||||
|
help="Get ratings for a decade (e.g. 60)")
|
||||||
|
parser.add_argument("-m", "--musicians", action="store_true",
|
||||||
|
help="Get the list of musicians")
|
||||||
|
parser.add_argument("--offset", type=int, default=0,
|
||||||
|
help="Offset for paginated queries (default is 0)")
|
||||||
|
parser.add_argument("--limit", type=int, default=20,
|
||||||
|
help="Limit for paginated queries (default is 20)")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
log_level = logging.DEBUG if args.verbose else logging.WARNING
|
||||||
|
global LOG
|
||||||
|
LOG = api.setup_logging("scaruffi", level=log_level)
|
||||||
|
|
||||||
|
if args.musicians:
|
||||||
|
musicians = api.get_musicians(args.offset, args.limit)
|
||||||
|
for musician in musicians:
|
||||||
|
print(musician)
|
||||||
|
elif args.ratings is not None:
|
||||||
|
ratings = api.get_ratings(args.ratings)
|
||||||
|
if ratings:
|
||||||
|
for rating, releases in ratings.items():
|
||||||
|
print(rating)
|
||||||
|
for rel in releases:
|
||||||
|
print(f"- {rel.artist} - {rel.title} ({rel.year})")
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
|
@ -1,15 +1,10 @@
|
||||||
#!/usr/bin/env python3
|
|
||||||
"""A simple library to get data from scaruffi.com."""
|
|
||||||
|
|
||||||
import argparse
|
|
||||||
import logging
|
|
||||||
import re
|
import re
|
||||||
from dataclasses import dataclass
|
from dataclasses import dataclass
|
||||||
|
|
||||||
from bs4 import BeautifulSoup, NavigableString
|
from bs4 import BeautifulSoup, NavigableString
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
import log
|
import scaruffi.log
|
||||||
|
|
||||||
|
|
||||||
LOG = None
|
LOG = None
|
||||||
|
@ -19,7 +14,6 @@ GENERAL_INDEX = SITE_URL + "/music/groups.html"
|
||||||
RATINGS_DECADES = SITE_URL + "/ratings/{:02}.html"
|
RATINGS_DECADES = SITE_URL + "/ratings/{:02}.html"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
class Release:
|
class Release:
|
||||||
title: str
|
title: str
|
||||||
|
@ -27,35 +21,9 @@ class Release:
|
||||||
year: int = 0 # Usually the release year, not the recording year.
|
year: int = 0 # Usually the release year, not the recording year.
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def setup_logging(*args, **kwargs):
|
||||||
parser = argparse.ArgumentParser()
|
|
||||||
parser.add_argument("-v", "--verbose", action="store_true",
|
|
||||||
help="Print debug logs")
|
|
||||||
parser.add_argument("-r", "--ratings", type=int,
|
|
||||||
help="Get ratings for a decade (e.g. 60)")
|
|
||||||
parser.add_argument("-m", "--musicians", action="store_true",
|
|
||||||
help="Get the list of musicians")
|
|
||||||
parser.add_argument("--offset", type=int, default=0,
|
|
||||||
help="Offset for paginated queries (default is 0)")
|
|
||||||
parser.add_argument("--limit", type=int, default=20,
|
|
||||||
help="Limit for paginated queries (default is 20)")
|
|
||||||
args = parser.parse_args()
|
|
||||||
|
|
||||||
log_level = logging.DEBUG if args.verbose else logging.WARNING
|
|
||||||
global LOG
|
global LOG
|
||||||
LOG = log.get_logger("scaruffi", level=log_level)
|
LOG = scaruffi.log.get_logger(*args, **kwargs)
|
||||||
|
|
||||||
if args.musicians:
|
|
||||||
musicians = get_musicians(args.offset, args.limit)
|
|
||||||
for musician in musicians:
|
|
||||||
print(musician)
|
|
||||||
elif args.ratings is not None:
|
|
||||||
ratings = get_ratings(args.ratings)
|
|
||||||
if ratings:
|
|
||||||
for rating, releases in ratings.items():
|
|
||||||
print(rating)
|
|
||||||
for rel in releases:
|
|
||||||
print(f"- {rel.artist} - {rel.title} ({rel.year})")
|
|
||||||
|
|
||||||
|
|
||||||
def _get_page(url):
|
def _get_page(url):
|
||||||
|
@ -213,7 +181,3 @@ def _parse_release_title_year(title_and_year):
|
||||||
LOG.error(f"Failed to parse year string \"{year}\" as an integer.")
|
LOG.error(f"Failed to parse year string \"{year}\" as an integer.")
|
||||||
year = 0
|
year = 0
|
||||||
return title, year
|
return title, year
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
main()
|
|
Loading…
Reference in a new issue