mirror of
https://github.com/Findus23/RadioStats.git
synced 2024-09-19 16:03:48 +02:00
"fix" spotipy
This commit is contained in:
parent
86ce91275e
commit
0afeccf8c1
3 changed files with 36 additions and 14 deletions
21
poetry.lock
generated
21
poetry.lock
generated
|
@ -31,7 +31,7 @@ python-versions = "*"
|
|||
|
||||
[[package]]
|
||||
name = "charset-normalizer"
|
||||
version = "2.0.7"
|
||||
version = "2.0.8"
|
||||
description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
|
||||
category = "main"
|
||||
optional = false
|
||||
|
@ -242,15 +242,16 @@ python-versions = ">=3.6"
|
|||
|
||||
[[package]]
|
||||
name = "spotipy"
|
||||
version = "2.16.0"
|
||||
version = "2.19.0"
|
||||
description = "A light weight Python library for the Spotify Web API"
|
||||
category = "main"
|
||||
optional = false
|
||||
python-versions = "*"
|
||||
|
||||
[package.dependencies]
|
||||
requests = ">=2.20.0"
|
||||
six = ">=1.10.0"
|
||||
requests = ">=2.25.0"
|
||||
six = ">=1.15.0"
|
||||
urllib3 = ">=1.26.0"
|
||||
|
||||
[package.extras]
|
||||
doc = ["Sphinx (>=1.5.2)"]
|
||||
|
@ -295,7 +296,7 @@ watchdog = ["watchdog"]
|
|||
[metadata]
|
||||
lock-version = "1.1"
|
||||
python-versions = ">=3.8,<4"
|
||||
content-hash = "72cae7774c43104bf5a4130b2e0b99210bdb4d8217c3c71d4a3607dc96f0f740"
|
||||
content-hash = "dd9b818c05f7525a8aafe36e8fbee9ffa2e26587adf1951101ad87ed53abe852"
|
||||
|
||||
[metadata.files]
|
||||
beautifulsoup4 = [
|
||||
|
@ -310,8 +311,8 @@ certifi = [
|
|||
{file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"},
|
||||
]
|
||||
charset-normalizer = [
|
||||
{file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"},
|
||||
{file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"},
|
||||
{file = "charset-normalizer-2.0.8.tar.gz", hash = "sha256:735e240d9a8506778cd7a453d97e817e536bb1fc29f4f6961ce297b9c7a917b0"},
|
||||
{file = "charset_normalizer-2.0.8-py3-none-any.whl", hash = "sha256:83fcdeb225499d6344c8f7f34684c2981270beacc32ede2e669e94f7fa544405"},
|
||||
]
|
||||
click = [
|
||||
{file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"},
|
||||
|
@ -421,9 +422,9 @@ soupsieve = [
|
|||
{file = "soupsieve-2.3.1.tar.gz", hash = "sha256:b8d49b1cd4f037c7082a9683dfa1801aa2597fb11c3a1155b7a5b94829b4f1f9"},
|
||||
]
|
||||
spotipy = [
|
||||
{file = "spotipy-2.16.0-py2-none-any.whl", hash = "sha256:800330badc1b953417dace1532a586220d35b2240eb2e538e883e19e6bf1b53d"},
|
||||
{file = "spotipy-2.16.0-py3-none-any.whl", hash = "sha256:9d07b8948c30d8a338805440797263749ccad07c22009f9b3112aa2bcb2ebcea"},
|
||||
{file = "spotipy-2.16.0.tar.gz", hash = "sha256:315eadd1248053ed336b4d3adbf2e3c32895fdbb0cfcd170542c848c8fd45649"},
|
||||
{file = "spotipy-2.19.0-py2-none-any.whl", hash = "sha256:dd6de229351bb6cf4d9bc169c5e183288da795f5a8265968dd98e95c037f9e7a"},
|
||||
{file = "spotipy-2.19.0-py3-none-any.whl", hash = "sha256:766f9ef96d61851d7884c4553f2de2527c3af01df603985f6987543bb28e3ff5"},
|
||||
{file = "spotipy-2.19.0.tar.gz", hash = "sha256:904f6e813dba837758e9510c1bee51d7ca217f169246625a13e693733dc33543"},
|
||||
]
|
||||
urllib3 = [
|
||||
{file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"},
|
||||
|
|
|
@ -10,7 +10,7 @@ requests = "^2.22.0"
|
|||
Flask = "^2.0.0"
|
||||
Flask-Caching = "^1.8.0"
|
||||
sentry-sdk = {extras = ["flask"], version = "^1.1.0"}
|
||||
spotipy = "2.16.0"
|
||||
spotipy = "^2.16.0"
|
||||
peewee = "^3.13.1"
|
||||
beautifulsoup4 = "^4.8.2"
|
||||
pytz = "^2021.1"
|
||||
|
|
27
spotify.py
27
spotify.py
|
@ -1,20 +1,41 @@
|
|||
import json
|
||||
import re
|
||||
import sys
|
||||
from time import sleep
|
||||
|
||||
import sentry_sdk
|
||||
import spotipy
|
||||
from redis import Redis
|
||||
from spotipy import CacheHandler
|
||||
from spotipy.oauth2 import SpotifyClientCredentials
|
||||
|
||||
import config
|
||||
from config import spotify
|
||||
from models import *
|
||||
|
||||
if config.sentryDSN:
|
||||
client = sentry_sdk.init(dsn=config.sentryDSN)
|
||||
|
||||
crm = SpotifyClientCredentials(**spotify)
|
||||
sp = spotipy.Spotify(client_credentials_manager=crm)
|
||||
|
||||
class RedisCacheHandler(CacheHandler):
|
||||
"""
|
||||
based on https://github.com/plamere/spotipy/pull/747
|
||||
"""
|
||||
|
||||
def __init__(self, redis):
|
||||
self.redis = redis
|
||||
|
||||
def get_cached_token(self):
|
||||
token_info = self.redis.get('token_info')
|
||||
if token_info:
|
||||
return json.loads(token_info)
|
||||
|
||||
def save_token_to_cache(self, token_info):
|
||||
self.redis.set('token_info', json.dumps(token_info))
|
||||
|
||||
|
||||
r = Redis(db=config.redisDB)
|
||||
crm = SpotifyClientCredentials(**config.spotify, cache_handler=RedisCacheHandler(r))
|
||||
sp = spotipy.Spotify(client_credentials_manager=crm, requests_session=False)
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
limit = int(sys.argv[1])
|
||||
|
|
Loading…
Reference in a new issue