pep 8 code style

This commit is contained in:
aj 2019-06-11 11:59:24 +01:00
parent cc41e949a9
commit 35633f1396
11 changed files with 104 additions and 107 deletions

View File

@ -1,11 +1,12 @@
import spotframework.net.user as userclass
import spotframework.net.network as networkclass
from spotframework.net.user import User
from spotframework.net.network import Network
import spotframework.log.log as log
import os
import datetime
def checkPhone():
def check_phone():
response = os.system("ping -c 1 -w5 " + os.environ['PHONEIP'] + " > /dev/null 2>&1")
log.log('checking for phone')
@ -14,16 +15,17 @@ def checkPhone():
else:
return False
if __name__ == '__main__':
try:
network = networkclass.network(userclass.User())
network = Network(User())
found = False
for i in range(0, 36):
if checkPhone():
if check_phone():
found = True
break
@ -31,17 +33,17 @@ if __name__ == '__main__':
date = datetime.datetime.now()
playlists = network.getUserPlaylists()
playlists = network.get_user_playlists()
playlisturi = next((i.uri for i in playlists if i.name == date.strftime("%B %-y").lower()), os.environ['SPOTALARMURI'])
network.play(playlisturi, network.getDeviceID(os.environ['SPOTALARMDEVICENAME']))
network.play(playlisturi, network.get_device_id(os.environ['SPOTALARMDEVICENAME']))
network.setShuffle(True)
network.setVolume(os.environ['SPOTALARMVOLUME'])
network.set_shuffle(True)
network.set_volume(os.environ['SPOTALARMVOLUME'])
network.next()
log.dumpLog()
log.dump_log()
except:
log.dumpLog()
log.dump_log()

View File

@ -1,5 +1,5 @@
import spotframework.net.user as userclass
import spotframework.net.network as networkclass
from spotframework.net.user import User
from spotframework.net.network import Network
import spotframework.io.csv as csvwrite
import spotframework.log.log as log
@ -11,11 +11,11 @@ if __name__ == '__main__':
try:
network = networkclass.network(userclass.User())
playlists = network.getUserPlaylists()
network = Network(User())
playlists = network.get_user_playlists()
for playlist in playlists:
playlist.tracks = network.getPlaylistTracks(playlist.playlistid)
playlist.tracks = network.get_playlist_tracks(playlist.playlistid)
path = sys.argv[1]
@ -27,9 +27,9 @@ if __name__ == '__main__':
os.makedirs(totalpath)
for play in playlists:
csvwrite.exportPlaylist(play, totalpath)
csvwrite.export_playlist(play, totalpath)
log.dumpLog()
log.dump_log()
except:
log.dumpLog()
log.dump_log()

View File

@ -1,6 +1,6 @@
import spotframework.net.const as const
import spotframework.net.network as network
import spotframework.net.user as user
from spotframework.net.network import Network
from spotframework.net.user import User
import spotframework.log.log as log
import spotframework.io.json as json
import spotframework.util.monthstrings as monthstrings
@ -21,9 +21,9 @@ if __name__ == '__main__':
try:
if os.path.exists(os.path.join(const.config_path, 'playlists.json')):
data = json.loadJson(os.path.join(const.config_path, 'playlists.json'))
data = json.load_json(os.path.join(const.config_path, 'playlists.json'))
net = network.network(user.User())
net = Network(User())
engine = PlaylistEngine(net)
engine.load_user_playlists()
@ -80,9 +80,9 @@ if __name__ == '__main__':
if 'SLACKHOOK' in os.environ:
requests.post(os.environ['SLACKHOOK'], json={"text": "spot playlists: config json not found"})
log.dumpLog()
except Exception:
log.dump_log()
except:
log.log("exception occured")
if 'SLACKHOOK' in os.environ:
requests.post(os.environ['SLACKHOOK'], json={"text": "spot playlists: exception occured"})
log.dumpLog()
log.dump_log()

View File

@ -1,8 +1,8 @@
import spotframework.net.user as userclass
import spotframework.net.network as networkclass
from spotframework.net.user import User
from spotframework.net.network import Network
if __name__ == '__main__':
network = networkclass.network(userclass.User())
network = Network(User())
print(network.user.access_token)

View File

@ -11,7 +11,7 @@ if __name__ == '__main__':
# print(data)
network = networkclass.network(userclass.User())
network = networkclass.Network(userclass.User())
# tracks = network.getPlaylistTracks("76ynkbkyc4uq11u1FcpOyG")

View File

@ -14,14 +14,14 @@ class PlaylistEngine:
self.net = net
def load_user_playlists(self):
self.playlists = self.net.getUserPlaylists()
self.playlists = self.net.get_user_playlists()
def append_user_playlists(self):
self.playlists += self.net.getUserPlaylists()
self.playlists += self.net.get_user_playlists()
def get_playlist_tracks(self, playlist):
log.log("pulling tracks for {}".format(playlist.name))
playlist.tracks = self.net.getPlaylistTracks(playlist.playlistid)
playlist.tracks = self.net.get_playlist_tracks(playlist.playlistid)
def make_playlist(self, playlist_parts, processors=[]):
@ -65,7 +65,7 @@ class PlaylistEngine:
return self.make_playlist(recent_playlist_parts + [this_month, last_month], processors)
def execute_playlist(self, tracks, playlist_id):
self.net.replacePlaylistTracks(playlist_id, [i['track']['uri'] for i in tracks])
self.net.replace_playlist_tracks(playlist_id, [i['track']['uri'] for i in tracks])
def change_description(self, playlistparts, playlist_id):
self.net.changePlaylistDetails(playlist_id, description=' / '.join(playlistparts))
self.net.change_playlist_details(playlist_id, description=' / '.join(playlistparts))

View File

@ -5,7 +5,8 @@ import spotframework.log.log as log
headers = ['name', 'artist', 'album', 'album artist', 'added', 'track id', 'album id', 'added by']
def exportPlaylist(playlist, path, name=None):
def export_playlist(playlist, path, name=None):
log.log('exportPlaylist', playlist.name, path, name)

View File

@ -3,7 +3,8 @@ import os
import spotframework.log.log as log
def loadJson(path):
def load_json(path):
log.log("load json", path)

View File

@ -5,6 +5,7 @@ import spotframework.net.const as const
logentries = []
def log(entry, *args):
timestamp = datetime.datetime.now()
@ -15,7 +16,8 @@ def log(entry, *args):
print(output)
def dumpLog():
def dump_log():
if not os.path.exists(os.path.join(const.config_path, 'log')):
os.makedirs(os.path.join(const.config_path, 'log'))

View File

@ -1,19 +1,19 @@
import requests
from . import const
from spotframework.model.playlist import Playlist as playlistclass
from spotframework.model.playlist import Playlist
import spotframework.log.log as log
limit = 50
class network:
class Network:
def __init__(self, user):
self.user = user
def _makeGetRequest(self, method, url, params=None, headers={}):
def _make_get_request(self, method, url, params=None, headers={}):
headers['Authorization'] = 'Bearer ' + self.user.access_token
headers['Authorization'] = 'Bearer ' + self.user.accesstoken
req = requests.get(const.api_url + url, params=params, headers=headers)
@ -25,9 +25,9 @@ class network:
return None
def _makePostRequest(self, method, url, params=None, json=None, headers={}):
def _make_post_request(self, method, url, params=None, json=None, headers={}):
headers['Authorization'] = 'Bearer ' + self.user.access_token
headers['Authorization'] = 'Bearer ' + self.user.accesstoken
req = requests.post(const.api_url + url, params=params, json=json, headers=headers)
@ -39,9 +39,9 @@ class network:
return None
def _makePutRequest(self, method, url, params=None, json=None, headers={}):
def _make_put_request(self, method, url, params=None, json=None, headers={}):
headers['Authorization'] = 'Bearer ' + self.user.access_token
headers['Authorization'] = 'Bearer ' + self.user.accesstoken
req = requests.put(const.api_url + url, params=params, json=json, headers=headers)
@ -53,14 +53,13 @@ class network:
return None
def getPlaylist(self, playlistid, tracksonly=False):
def get_playlist(self, playlistid, tracksonly=False):
log.log("getPlaylist", playlistid)
tracks = self.getPlaylistTracks(playlistid)
tracks = self.get_playlist_tracks(playlistid)
playlist = playlistclass(playlistid)
playlist = Playlist(playlistid)
playlist.tracks += tracks
if not tracksonly:
@ -68,7 +67,7 @@ class network:
return playlist
def getPlaylists(self, offset=0):
def get_playlists(self, offset=0):
log.log("getPlaylists", offset)
@ -76,35 +75,35 @@ class network:
params = {'offset': offset, 'limit': limit}
resp = self._makeGetRequest('getPlaylists', 'me/playlists', params=params)
resp = self._make_get_request('getPlaylists', 'me/playlists', params=params)
if resp:
for responseplaylist in resp['items']:
playlist = playlistclass(responseplaylist['id'], responseplaylist['uri'])
playlist = Playlist(responseplaylist['id'], responseplaylist['uri'])
playlist.name = responseplaylist['name']
playlist.userid = responseplaylist['owner']['id']
playlists.append(playlist)
#playlists = playlists + resp['items']
# playlists = playlists + resp['items']
if resp['next']:
playlists += self.getPlaylists(offset + limit)
playlists += self.get_playlists(offset + limit)
return playlists
else:
return None
def getUserPlaylists(self):
def get_user_playlists(self):
log.log("getUserPlaylists")
return list(filter(lambda x: x.userid == self.user.username, self.getPlaylists()))
return list(filter(lambda x: x.userid == self.user.username, self.get_playlists()))
def getPlaylistTracks(self, playlistid, offset=0):
def get_playlist_tracks(self, playlistid, offset=0):
log.log("getPlaylistTracks", playlistid, offset)
@ -112,35 +111,32 @@ class network:
params = {'offset': offset, 'limit': limit}
resp = self._makeGetRequest('getPlaylistTracks', 'playlists/{}/tracks'.format(playlistid), params=params)
resp = self._make_get_request('getPlaylistTracks', 'playlists/{}/tracks'.format(playlistid), params=params)
tracks += resp['items']
if resp['next']:
tracks += self.getPlaylistTracks(playlistid, offset + limit)
tracks += self.get_playlist_tracks(playlistid, offset + limit)
return tracks
def getAvailableDevices(self):
def get_available_devices(self):
log.log("getAvailableDevices")
return self._makeGetRequest('getAvailableDevices', 'me/player/devices')
return self._make_get_request('getAvailableDevices', 'me/player/devices')
def getPlayer(self):
def get_player(self):
log.log("getPlayer")
return self._makeGetRequest('getPlayer', 'me/player')
return self._make_get_request('getPlayer', 'me/player')
def getDeviceID(self, devicename):
def get_device_id(self, devicename):
log.log("getDeviceID", devicename)
return next((i for i in self.getAvailableDevices()['devices'] if i['name'] == devicename), None)['id']
return next((i for i in self.get_available_devices()['devices'] if i['name'] == devicename), None)['id']
def play(self, uri, deviceid=None):
@ -153,7 +149,7 @@ class network:
payload = {'context_uri': uri}
req = self._makePutRequest('play', 'me/player/play', params=params, json=payload)
req = self._make_put_request('play', 'me/player/play', params=params, json=payload)
def pause(self, deviceid=None):
@ -164,8 +160,7 @@ class network:
else:
params = None
req = self._makePutRequest('pause', 'me/player/pause', params=params)
req = self._make_put_request('pause', 'me/player/pause', params=params)
def next(self, deviceid=None):
@ -176,10 +171,9 @@ class network:
else:
params = None
req = self._makePostRequest('next', 'me/player/next', params=params)
req = self._make_post_request('next', 'me/player/next', params=params)
def setShuffle(self, state, deviceid=None):
def set_shuffle(self, state, deviceid=None):
log.log("setShuffle", state, deviceid)
@ -188,10 +182,9 @@ class network:
if deviceid is not None:
params['device_id'] = deviceid
req = self._makePutRequest('setShuffle', 'me/player/shuffle', params=params)
req = self._make_put_request('setShuffle', 'me/player/shuffle', params=params)
def setVolume(self, volume, deviceid=None):
def set_volume(self, volume, deviceid=None):
log.log("setVolume", volume, deviceid)
@ -202,12 +195,12 @@ class network:
if deviceid is not None:
params['device_id'] = deviceid
req = self._makePutRequest('setVolume', 'me/player/volume', params=params)
req = self._make_put_request('setVolume', 'me/player/volume', params=params)
else:
log.log("setVolume", volume, "not allowed")
def makePlaylist(self, name, description=None, public=True, collaborative=False):
def make_playlist(self, name, description=None, public=True, collaborative=False):
log.log("makePlaylist", name, 'description:{}'.format(description), 'public:{}'.format(public),
'collaborative:{}'.format(collaborative))
@ -219,19 +212,19 @@ class network:
if description is not None:
json["description"] = description
req = self._makePostRequest('makePlaylist', 'users/{}/playlists'.format(self.user.username), json=json,
headers=headers)
req = self._make_post_request('makePlaylist', 'users/{}/playlists'.format(self.user.username), json=json,
headers=headers)
if req is not None:
resp = req.json()
if resp is not None:
playlist = playlistclass(resp["id"], uri=resp['uri'], name=resp['name'], userid=resp['owner']['id'])
playlist = Playlist(resp["id"], uri=resp['uri'], name=resp['name'], userid=resp['owner']['id'])
return playlist
return None
def replacePlaylistTracks(self, playlistid, uris):
def replace_playlist_tracks(self, playlistid, uris):
log.log("replacePlaylistTracks", playlistid)
@ -239,16 +232,16 @@ class network:
json = {"uris": uris[:100]}
req = self._makePutRequest('replacePlaylistTracks', 'playlists/{}/tracks'.format(playlistid), json=json,
req = self._make_put_request('replacePlaylistTracks', 'playlists/{}/tracks'.format(playlistid), json=json,
headers=headers)
if req is not None:
resp = req.json()
if len(uris) > 100:
self.addPlaylistTracks(playlistid, uris[100:])
self.add_playlist_tracks(playlistid, uris[100:])
def changePlaylistDetails(self, playlistid, name=None, public=None, collaborative=None, description=None):
def change_playlist_details(self, playlistid, name=None, public=None, collaborative=None, description=None):
log.log("changePlaylistDetails", playlistid)
@ -268,11 +261,11 @@ class network:
if description is not None:
json['description'] = description
req = self._makePutRequest('changePlaylistDetails', 'playlists/{}'.format(playlistid), json=json,
req = self._make_put_request('changePlaylistDetails', 'playlists/{}'.format(playlistid), json=json,
headers=headers)
return req
def addPlaylistTracks(self, playlistid, uris):
def add_playlist_tracks(self, playlistid, uris):
log.log("addPlaylistTracks", playlistid)
@ -280,12 +273,12 @@ class network:
json = {"uris": uris[:100]}
req = self._makePostRequest('addPlaylistTracks', 'playlists/{}/tracks'.format(playlistid), json=json,
headers=headers)
req = self._make_post_request('addPlaylistTracks', 'playlists/{}/tracks'.format(playlistid), json=json,
headers=headers)
if req is not None:
resp = req.json()
if len(uris) > 100:
self.addPlaylistTracks(playlistid, uris[100:])
self.add_playlist_tracks(playlistid, uris[100:])

View File

@ -5,34 +5,32 @@ from base64 import b64encode
client_id = os.environ['SPOTCLIENT']
client_secret = os.environ['SPOTSECRET']
class User:
def __init__(self):
self.access_token = os.environ['SPOTACCESS']
self.refresh_token = os.environ['SPOTREFRESH']
self.accesstoken = os.environ['SPOTACCESS']
self.refreshtoken = os.environ['SPOTREFRESH']
self.refreshToken()
self.refresh_token()
self.username = self.getInfo()['id']
self.username = self.get_info()['id']
def refreshToken(self):
def refresh_token(self):
idsecret = b64encode(bytes(client_id + ':' + client_secret, "utf-8")).decode("ascii")
headers = { 'Authorization' : 'Basic %s' % idsecret }
headers = {'Authorization': 'Basic %s' % idsecret}
data = {"grant_type": "refresh_token", "refresh_token": self.refresh_token}
data = {"grant_type": "refresh_token", "refresh_token": self.refreshtoken}
req = requests.post('https://accounts.spotify.com/api/token', data = data, headers = headers )
#print(req.status_code)
#print(req.text)
req = requests.post('https://accounts.spotify.com/api/token', data=data, headers=headers)
if req.status_code is 200:
self.access_token = req.json()['access_token']
self.accesstoken = req.json()['access_token']
def getInfo(self):
def get_info(self):
headers = { 'Authorization' : 'Bearer %s' % self.access_token }
headers = {'Authorization': 'Bearer %s' % self.accesstoken}
req = requests.get('https://api.spotify.com/v1/me', headers = headers)
req = requests.get('https://api.spotify.com/v1/me', headers=headers)
return req.json()