<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_recent_tracks(self, limit=10, cacheable=True, time_from=None, time_to=None):
 """ Returns this user's played track as a sequence of PlayedTrack objects in reverse order of playtime, all the way back to the first track. Parameters: limit : If None, it will try to pull all the available data. from (Optional) : Beginning timestamp of a range - only display scrobbles after this time, in UNIX timestamp format (integer number of seconds since 00:00:00, January 1st 1970 UTC). This must be in the UTC time zone. to (Optional) : End timestamp of a range - only display scrobbles before this time, in UNIX timestamp format (integer number of seconds since 00:00:00, January 1st 1970 UTC). This must be in the UTC time zone. This method uses caching. Enable caching only if you're pulling a large amount of data. """


        params = self._get_params()
        if limit:
            params["limit"] = limit
        if time_from:
            params["from"] = time_from
        if time_to:
            params["to"] = time_to

        seq = []
        for track in _collect_nodes(
            limit, self, self.ws_prefix + ".getRecentTracks", cacheable, params
        ):

            if track.hasAttribute("nowplaying"):
                continue  # to prevent the now playing track from sneaking in

            title = _extract(track, "name")
            artist = _extract(track, "artist")
            date = _extract(track, "date")
            album = _extract(track, "album")
            timestamp = track.getElementsByTagName("date")[0].getAttribute("uts")

            seq.append(
                PlayedTrack(Track(artist, title, self.network), album, date, timestamp)
            )

        return seq