def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.setupUi(self) self.lfm = lfmAPI("f3d8fbacbda2a35bfa855ef52052ca25") # Init Last.FM Api self.status = {'artist' : '', 'album' : '', 'tags' : ''} self.runDir = os.getcwdu() config = ConfigParser.ConfigParser() try: config.read(os.path.join(self.runDir, 'vkdconfig.ini')) self.login = config.get('vkuser', 'login') self.password = config.get('vkuser', 'pass') self.vkLoginLine.setText(self.login) self.vkPassLine.setText(self.password) except: print 'Fail' self.connect(self.searchButton, SIGNAL('clicked()'), self.fillArtists) self.connect(self.artistList, SIGNAL('itemDoubleClicked(QListWidgetItem *)'), self.ArtistListClick) self.connect(self.albumsList, SIGNAL('itemDoubleClicked(QListWidgetItem *)'), self.AlbumsListClick) self.connect(self.downloadChekedAlbums, SIGNAL('clicked()'), self.downloadCheckedAlbumsGo) self.connect(self.trackList, SIGNAL('itemDoubleClicked(QListWidgetItem *)'), self.TrackListClick) self.connect(self.vkLoginButton, SIGNAL('clicked()'), self.vkLogin)
sysname = re.compile(r'[!/\\:;*?«<>|]+') time_find = re.compile('data-dur="(.*)" onclick') artist_find = re.compile('<span class="artist">(.*)</span>') tracks_find = re.compile('<span class="title">(.*)</span>') mp3s_find = re.compile('<input type="hidden" value="(.*)">') year_find = re.compile('(\d[4])') default_workdirs = ['c:\music', 'd:\music', 'e:\music', 'f:\music', 'g:\music', 'h:\music', 'i:\music', '/mnt/sdcard/Music'] intro_workdir = """ Input work directory path, choose defaults from list or leave blank for current directory """ lfm_api = lastfmApi.lfmAPI("f3d8fbacbda2a35bfa855ef52052ca25") acoustid_apikey = 'FDaQARn2' def initVk(email, password): br = mechanize.Browser() br.set_handle_robots(False) br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time = 1) br.addheaders = [('User-agent', 'Mozilla/5.0 (Linux; U; Android 3.0; \ ru-RU; Xoom Build/HRI39) AppleWebKit/534.13 KHTML, like Gecko Version/4.0 \ Safari/534.13')] br.open('http://m.vk.com') br.select_form(nr = 0) br.form['email'] = email br.form['pass'] = password br.submit() return br
#!/usr/bin/env python # -*- coding: utf-8 -*- __author__ = 'MasterX2' from lastfmApi import lfmAPI lfm = lfmAPI("f3d8fbacbda2a35bfa855ef52052ca25") artists = lfm.artist_search(u'Сплин') print 'Artist - %s' % artists[0] albums = lfm.getTopAlbums(artists[0]) print 'Albums - %s' % albums[0] covers = lfm.getAlbumCovers(artists[0], albums[0]) print 'Covers - %s' % covers tracks, release_date = lfm.getAlbumInfo(artists[0], albums[0]) for track in tracks: print 'Track #%s - %s | %s' % (track[0], track[1], track[2]) print 'Year - %s' % release_date.strip() tags = lfm.getTopTags(artists[0]) print 'Tag #1 - %s' % tags[0]
sysname = re.compile(r'[!/\\:;*?«<>|]+') # Init # Пользователь выбирает интересуещего его исполнителя user_artist = u'foo' Start_Dir = os.getcwdu() config = ConfigParser.ConfigParser() config.read(os.path.join(Start_Dir, 'vkdconfig.ini')) login = config.get('vkuser', 'login') password = config.get('vkuser', 'pass') lfm = lfmAPI("f3d8fbacbda2a35bfa855ef52052ca25") # Init Last.FM Api mbAPI = mbzAPI() # Init MusicBrainz Api # VK Login br = initVk(login, password) # Last.FM Build Artist Profile artists = lfm.artist_search(user_artist) # Список найденых исполнителей albums = lfm.getTopAlbums(artists[0]) # Список альбомов испослнителя # Словарь { 'тип обложки' : 'ссылка' } типы [small|large|medium|mega|extralarge] # Список треков в формате [['номер трека', 'имя трека', 'длительность в секундах'], ....] # Дата релиза в формате datetime объекта tracks, release_date, covers = lfm.getAlbumInfo(artists[0], albums[0]) tags = lfm.getTopTags(artists[0]) # Список тегов исполнителя