nvbn 30.05.2012 15:46
Мой OpenSource проект — Rhythmbox плагин для проигрывания музыки из Google Play
Сейчас уже многие пользуются Google Музыкой - облачным хранилищем и проигрывателем песен.Всё в этом сервисе удобно: и возможность заливки 20000 треков, и удобный клиент на Android, и симпатичная web-версия.
Но в последнее время вкладка браузера с облаком начала кушать по 600мб+ оперативки и частенько показывать "Опаньки".
Да и интеграция с системой у приложения никакая.
Итак, встречайте - rhythmbox-gmusic
Плагин написан на python с использованием неофициального api.
Пользователи ubuntu 12.04 могут поставить версию из ppa:
1 |
|
Остальные могут склонировать репозиторий и установить через setup.py
А где оно хранит логин и пароль? Можно ли писать лог не в /usr/lib?
Логин и пароль хранит в gconf, gnome-keyring с rhythmbox из gi.repository сегфолтится.
Автор, давай исправим английский текст?
Ок, вечером залью с исправлениями и переводами.
Почему оно падает после выхода из Rhythmbox и повторного захода? (Ubuntu 12.04 x64)
Какие-нибудь другие плагины установлены?
Какие-нибудь другие плагины установлены?
Падает именно сам плагин, отображается с красным кружочком в списке плагинов. Из других плагинов всё стандартное по дефолту: Audio CD Rec, Cover Art, DAAP, lastfm, mediaserver2 d-bus, mpris d-bus, Notification, iPod, MTP.
а что, самим play.google.com уже можно пользоваться? а то меня посылают, обвиняя в не 100%-м американстве
Для тех, кто устанавливает через setup.py:
Из скачанного архива извлечь сам плагин и положить в /usr/lib/rhythmbox/plugins/
Автор, давай исправим английский текст?
This plugin request authoristaion -> This plugin requires you to authenticate to Google Play
You need to authenticate in google play -> Please enter your Google account credentials
Google Play authorisation -> Your Google account credentials
Authenticate -> Click here to login
А где оно хранит логин и пароль? Можно ли писать лог не в /usr/lib ?
Почему оно падает после выхода из Rhythmbox и повторного захода? (Ubuntu 12.04 x64)
2012-05-30 10:55:45,870 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:45,895 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:46,315 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:46,339 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:46,714 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:46,739 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:47,027 - gmusicapi.Api - WARNING - Received an unexpected response from call loadalltracks.
2012-05-30 10:55:47,047 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:48,322 - gmusicapi.Api - WARNING - Received an unexpected response from call loadplaylist.
2012-05-30 10:55:48,330 - gmusicapi.Api - WARNING - error was: Failed to validate field 'magicPlaylists' list schema: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
2012-05-30 10:55:48,576 - gmusicapi.Api - WARNING - Received an unexpected response from call loadplaylist.
2012-05-30 10:55:48,582 - gmusicapi.Api - WARNING - error was: Failed to validate field 'playlist' list schema: additional property 'storeId' not defined by 'properties' are not allowed in list item
(rhythmbox:31519): RhythmDB-WARNING **: attempting to create entry that already exists: c0cc10cc-2534-488a-bf65-f2fef8ddad5a/561073d7-3dec-309c-acb1-e62a1350aba0
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 31, in do_activate
self.source.setup()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 105, in setup
self.init_authenticated()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 179, in init_authenticated
pl.setup(id)
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 162, in setup
GBaseSource.setup(self)
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 105, in setup
self.init_authenticated()
File "/usr/local/lib/python2.7/dist-packages/rhythmbox_gmusic-1.0dev-py2.7.egg/rhythmboxgmusic/__init__.py", line 126, in init_authenticated
entry = RB.RhythmDBEntry.new(shell.props.db, gentry, getattr(self, 'id', '0') + '/' + song['id'])
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 72, in constructor
return info.invoke(cls, *args, **kwargs)
TypeError: constructor returned NULL