def __init__(self, track_data, **kwargs): """ Track object initialization, load track metadata. """ if "client" in kwargs: self.client = kwargs.get("client") elif "client_id" in kwargs: self.client = sclient(kwargs.get("client_id")) else: self.client = sclient() def map(key, data): return str(data[key]) if key in data else "" self.metadata = { "id": track_data["id"], "title": map("title", track_data), "permalink": map("permalink", track_data), "username": map("permalink", track_data["user"]), "artist": map("username", track_data["user"]), "user-url": map("permalink_url", track_data["user"]), "downloadable": track_data["downloadable"], "original-format": map("original_format", track_data), "created-at": map("created_at", track_data), "duration": map("duration", track_data), "tags-list": map("tags_list", track_data), "genre": map("genre", track_data), "description": map("description", track_data), "license": map("license", track_data), "uri": map("uri", track_data), "permalink-url": map("permalink_url", track_data), "artwork-url": map("artwork_url", track_data).replace("large", "crop"), }
def test_init_auto_get_client_id(self): """ Test object init get automatically client_id when not passed in args. """ sclient.get_client_id = Mock() sclient() sclient.get_client_id.assert_called_once()
def __init__(self, username, **kwargs): """ Initialize soundcloud's user object. """ self.name = username if "client" in kwargs: self.client = kwargs.get("client") elif "client_id" in kwargs: self.client = sclient(kwargs.get("client_id")) else: self.client = sclient()
def __init__(self, track_data, **kwargs): """ Track object initialization, load track metadata. """ if "client" in kwargs: self.client = kwargs.get("client") elif "client_id" in kwargs: self.client = sclient(kwargs.get("client_id")) else: self.client = sclient() self.metadata = { "id": track_data["id"], "title": track_data["title"], "permalink": track_data["permalink"], "username": track_data["user"]["permalink"], "downloadable": track_data["downloadable"], "ext": track_data["original_format"], }
def __init__(self, playlist_data, **kwargs): """ Playlist object initialization, load playlist metadata. """ if "client" in kwargs: self.client = kwargs.get("client") elif "client_id" in kwargs: self.client = sclient(kwargs.get("client_id")) else: self.client = sclient() tracks = [] for track in playlist_data["tracks"]: tracks.append(strack(track, client=self.client)) def map(key, data): return str(data[key]) if key in data else "" self.metadata = { "duration": map("duration", playlist_data), "release-day": map("release_day", playlist_data), "permalink-url": map("permalink_url", playlist_data), "reposts-count": map("reposts_count", playlist_data), "genre": map("genre", playlist_data), "permalink": map("permalink", playlist_data), "purchase-url": map("purchase_url", playlist_data), "release-month": map("release_month", playlist_data), "description": map("description", playlist_data), "uri": map("uri", playlist_data), "label-name": map("label_name", playlist_data), "tag-list": map("tag_list", playlist_data), "release-year": map("release_year", playlist_data), "track-count": map("track_count", playlist_data), "user-id": map("user_id", playlist_data), "last-modified": map("last_modified", playlist_data), "license": map("license", playlist_data), "tracks": tracks }
def test_get_protocol_http(self): """ Test get protocol when port is different to 443. """ object = sclient("my_id", port="80") self.assertEquals("http", object.get_protocol())
def test_get_protocol_https(self): """ Test get protocol when port equals 443. """ object = sclient("my_id", port="443") self.assertEquals("https", object.get_protocol())
def test_init_with_kwargs(self): """ Test object initialization with kwargs. """ object = sclient("my_id", host="my_host", port="my_port") self.assertEquals("my_host", object.host) self.assertEquals("my_port", object.port)
def test_init(self): """ Test basic object initialization. """ object = sclient("my_id") self.assertEquals("my_id", object.client_id)
print(serror("Error: output directory `%s` doesn's exists." % args.output_dir)) exit(1) offset = 0 limit = 50 if args.offset: offset = args.offset if args.limit: if args.limit > 200: print(serror("Error: tracks limit limited to 200 tracks..")) exit(2) limit = args.limit try: sclient = sclient(args.client_id) suser = suser(args.user, client=sclient) except serror as e: print(e) exit(3) tracks_getter = suser.get_likes if args.tracks: tracks_getter = suser.get_tracks if args.recursive: while True: nb = downloader(tracks_getter, args.output_dir, offset, limit) if nb == 0: break