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 )
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), )
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)
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)