Example #1
0
    def update_track(self, data_iterator_func):
        last_update_date = Item.objects.get_last_update_of_model(Track)
        log.debug("Last update date: %s", last_update_date)
    
        tracks = self.incoming["track"] = list()
        for track in data_iterator_func("track"):

            # date delivered as UTC
            timestamp = datetime.datetime.fromtimestamp(int(track.find('date').get('uts')))
            if utils.JELLYROLL_ADJUST_DATETIME:
                timestamp = utils.utc_to_local_timestamp(int(track.find('date').get('uts')))

            artist = track.find('artist')

            obj = {}
            obj['artist_name'] = smart_unicode(artist.text)
            obj['artist_mbid'] = artist.get('mbid')
            obj['track_name']  = smart_unicode(track.find('name').text)
            obj['track_mbid']  = smart_unicode(track.find('mbid').text)

            obj['tags']        = self.tags_for_track(obj['artist_name'], obj['track_name'])
            obj['url']         = smart_unicode(track.find('url').text)
            obj['timestamp']   = timestamp

            tracks.append( obj )
Example #2
0
def _handle_revision(repository, commit):
    log.debug("Handling [%s] from %s", commit.id[:7], repository.url)
    ci, created = CodeCommit.objects.get_or_create(
        revision = commit.id,
        repository = repository,
        defaults = {"message": smart_unicode(commit.message)}
    )
    if created:
        # stored as UTC
        timestamp = datetime.datetime.fromtimestamp(time.mktime(commit.committed_date))
        if utils.JELLYROLL_ADJUST_DATETIME:
            return utils.utc_to_local_timestamp(time.mktime(commit.committed_date))

        return Item.objects.create_or_update(
            instance = ci, 
            timestamp = timestamp,
            source = "%s:%s" % (__name__, repository.url),
        )
Example #3
0
def update():
    last_update_date = Item.objects.get_last_update_of_model(Track)
    log.debug("Last update date: %s", last_update_date)
    
    xml = utils.getxml(RECENT_TRACKS_URL % settings.LASTFM_USERNAME)
    for track in xml.getiterator("track"):
        artist      = track.find('artist')
        artist_name = smart_unicode(artist.text)
        artist_mbid = artist.get('mbid')
        track_name  = smart_unicode(track.find('name').text)
        track_mbid  = smart_unicode(track.find('mbid').text)
        url         = smart_unicode(track.find('url').text)

        # date delivered as UTC
        timestamp = datetime.datetime.fromtimestamp(int(track.find('date').get('uts')))
        if utils.JELLYROLL_ADJUST_DATETIME:
            timestamp = utils.utc_to_local_timestamp(int(track.find('date').get('uts')))

        if not _track_exists(artist_name, track_name, timestamp):
            tags = _tags_for_track(artist_name, track_name)
            _handle_track(artist_name, artist_mbid, track_name, track_mbid, url, timestamp, tags)
Example #4
0
def update():
    last_update_date = Item.objects.get_last_update_of_model(Track)
    log.debug("Last update date: %s", last_update_date)

    xml = utils.getxml(RECENT_TRACKS_URL % settings.LASTFM_USERNAME)
    for track in xml.getiterator("track"):
        artist = track.find('artist')
        artist_name = smart_unicode(artist.text)
        artist_mbid = artist.get('mbid')
        track_name = smart_unicode(track.find('name').text)
        track_mbid = smart_unicode(track.find('mbid').text)
        url = smart_unicode(track.find('url').text)

        # date delivered as UTC
        timestamp = datetime.datetime.fromtimestamp(
            int(track.find('date').get('uts')))
        if utils.JELLYROLL_ADJUST_DATETIME:
            timestamp = utils.utc_to_local_timestamp(
                int(track.find('date').get('uts')))

        if not _track_exists(artist_name, track_name, timestamp):
            tags = _tags_for_track(artist_name, track_name)
            _handle_track(artist_name, artist_mbid, track_name, track_mbid,
                          url, timestamp, tags)