mirror of
https://github.com/glomatico/votify.git
synced 2026-10-05 15:32:34 +02:00
create constructors from_file and from_browser
This commit is contained in:
+17
-7
@@ -5,11 +5,12 @@ import json
|
||||
import re
|
||||
import time
|
||||
import typing
|
||||
from http.cookiejar import MozillaCookieJar
|
||||
from http.cookiejar import CookieJar, MozillaCookieJar
|
||||
from pathlib import Path
|
||||
|
||||
import base62
|
||||
import requests
|
||||
import rookiepy
|
||||
|
||||
from .utils import check_response
|
||||
|
||||
@@ -38,17 +39,26 @@ class SpotifyApi:
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
cookies_path: Path | None = Path("./cookies.txt"),
|
||||
cookies: CookieJar = None,
|
||||
):
|
||||
self.cookies_path = cookies_path
|
||||
self.cookies = cookies
|
||||
self._set_session()
|
||||
|
||||
@classmethod
|
||||
def from_file(cls, cookies_path: Path):
|
||||
cookies = MozillaCookieJar(cookies_path)
|
||||
cookies.load(ignore_discard=True, ignore_expires=True)
|
||||
return cls(cookies)
|
||||
|
||||
@classmethod
|
||||
def from_browser(cls, browser: str):
|
||||
cookies: rookiepy.CookieList = getattr(rookiepy, browser)(["spotify.com"])
|
||||
return cls(rookiepy.to_cookiejar(cookies))
|
||||
|
||||
def _set_session(self):
|
||||
self.session = requests.Session()
|
||||
if self.cookies_path:
|
||||
cookies = MozillaCookieJar(self.cookies_path)
|
||||
cookies.load(ignore_discard=True, ignore_expires=True)
|
||||
self.session.cookies.update(cookies)
|
||||
if self.cookies is not None:
|
||||
self.session.cookies.update(self.cookies)
|
||||
self.session.headers.update(
|
||||
{
|
||||
"accept": "application/json",
|
||||
|
||||
Reference in New Issue
Block a user