1

Сегодня у меня наконец-то дошли руки выпустить релиз 0.2 своего плеера для http://vk.com, одним из ключевых изменений релиза стала поддержка distutils, чтобы позволило быстро и легко собрать rpm-пакет с приложением.

wx VK Music - свободный проигрыватель музыки из соц. сети vk.com.
    * Добавление плейлистов пользователей или сообществ по идентификаторам (id) или именам
    * Добавление отдельных альбомов
    * Вкладки с плейлистами
    * Сортировка плейлистов
    * Повтор аудиотрека
    * Воспроизведение случайного аудиотрека
    * Проигрывание плейлиста в обратном порядке
    * Проигрывание плейлиста в случайном порядке
    * Поиск аудиозаписей
    * Скачивание аудиозаписей
    * Приложение получает доступ только к аудиозаписям
    * По желанию пользователя приложение может сохранить логин и сессию (access token)
    * Пароли приложение НЕ сохраняет
    * Параметры приложения хранятся в ini конфигурационном файле. В GNU/Linux он расположен в ~/.config/wxvkmusic/config.ini ($XDG_CONFIG_HOME/wxvkmusic/config.ini). Подробности о XDG_CONFIG_HOME см. в спецификации XDG Base Directory

Пакет wxvkmusic. Буду благодарен за отзывы.

Fedora & GNOME
Спасибо сказали: BoDun, algri14, Master X3

2 (2015-03-27 16:18:16 отредактировано BoDun)

xxblx, есть одно предложение вопросительное.
На сайте как бы то не сижу, а посему плейлисты не создаю (может со старых времен чего есть, разве что)
А потому, было бы интересно, чтоб можно было создавать плейлист после поиска.
К примеру, после поиска группы 1, мы имеем вкладку с одним плейлистом.
После поиска группы 2, две вкладки - но в списке исключительно одна группа.
А вот как бы смешать оба плейлиста (обе вкладки) и было бы не плохо иметь возможность данный плейлист сохранять как плейлист локально или в том же вк.
А так, спасибо, удобно и хорошо работает. Пару дней посмотрю, баги будут - отпишу.

зы: mageia 4 i586, lxde

Обычный юзер
Mageia 8 x86_64 Plasma
Спасибо сказали: xxblx1

3

BoDun пишет:

К примеру, после поиска группы 1, мы имеем вкладку с одним плейлистом.
После поиска группы 2, две вкладки - но в списке исключительно одна группа.
А вот как бы смешать оба плейлиста (обе вкладки) и было бы не плохо иметь возможность данный плейлист сохранять как плейлист локально или в том же вк.

Я думал над этим. Планировал назвать это "локальными плейлистами". Но в долгосрочной перспективе, потому что пилю приложение редко, времени не хватает, а TODO уже здоровый скопился smile

Fedora & GNOME

4

Итак мой итог:
На двух системах mageia 4 i586 lxde, всё прекрасно и никаких нареканий нет.
Поставил на систему mageia 4 x86_64, и вот тут как раз беда, как понимаю беда с python:

Консоль
[bodun@localhost ~]$ wxvkmusic

(python:5781): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed
[bodun@localhost ~]$ wxvkmusic

(python:5816): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 648, in open_search
    search_result=True)
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 722, in add_page
    % name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

(python:5816): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed

Обычный юзер
Mageia 8 x86_64 Plasma

5

BoDun, это при запуске просто с ошибкой вывалило или после каких-то действий?

Fedora & GNOME

6 (2015-03-27 21:25:01 отредактировано algri14)

xxblx⇓ пишет:

Пакет wxvkmusic. Буду благодарен за отзывы.

Работает, скачивает по дефолту в /Домашнюю папку, а не в Музыку, может потому, что она у меня через симлинк идёт, при указании пути скачивает именно в Музыку и симлинк при этом понимает, как создавать плейлист ещё не разобрался. Вбил в Поиск Юта - выдало всё, что есть на сайте, слушай/скачивай.
Чуть позже ещё допишу отзыв, пока вроде всё нормально - удобно.

7

algri14 пишет:

скачивает по дефолту в /Домашнюю папку, а не в Музыку, может потому, что она у меня через симлинк идёт

В настройках сменить можно каталог.

algri14 пишет:

как создавать плейлист

Его не создают, добавляют уже существующий. У каждого пользователя, каждой публичной страницы, каждой группы в vk.com есть свой плейлист. Файл - Добавить, в поле идентификатор ввести числовой id или обычный username пользователя/страницы/группы и если запрашиваемый плейлист не скрыт от тебя или ото всех настройками приватности, плейлист добавится.

Например, http://vk.com/operation_plasticine группа группы Операция Пластилин в vk.com.
Файл - Добавить, в поле идентификатор пишем operation_plasticine, отметку ставим в поле Сообщество, в Название плейлиста пишем произвольное название, это будет названием вкладки плейлиста, например, Операция пластилин. Нажимаем Добавить.
Итог
https://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/10000/2000/12460/thumb/p19heb60ivtf7ulv1sta1tuk7f41.png

Fedora & GNOME
Спасибо сказали: algri141

8 (2015-03-27 23:02:44 отредактировано algri14)

xxblx⇓ пишет:

В настройках сменить можно каталог.

algri14⇓ пишет:

при указании пути скачивает именно в Музыку

Я ж написал, что указал и сменил, но имел ввиду, что нужно чтоб по дефолту путь стоял /home/user_имя/Музыка (а далее уже каждый сам продолжит)

9

xxblx пишет:

BoDun, это при запуске просто с ошибкой вывалило или после каких-то действий?

Сразу после запуска:

Консоль
[bodun@localhost ~]$ wxvkmusic

(python:11494): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed


После запроса (поиск музыки)
Консоль
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 648, in open_search
    search_result=True)
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 722, in add_page
    % name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

Пробуем проиграть песню:
Консоль
(python:11494): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed

Весь вывод:

Консоль
[bodun@localhost ~]$ wxvkmusic

(python:11494): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 648, in open_search
    search_result=True)
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 722, in add_page
    % name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

(python:11494): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed

Обычный юзер
Mageia 8 x86_64 Plasma

10

algri14 пишет:

но имел ввиду, что нужно чтоб по дефолту путь стоял /home/user_имя/Музыка

Однозначно нет.
В зависимости от системного языка название каталога будет меняться. А vk.com используют отнюдь не только русские. Я не хочу предусматривать 100500 возможных вариантов, по этому по умолчанию будет ~/, т.к. это 100% рабочий вариант у каждого пользователя.

BoDun пишет:

После запроса (поиск музыки)

А что за запрос? Странно просто, у меня проблем не возникает таких.  Да и раньше никто не жаловался.
И покажи, пожалуйста,

Консоль
locale

Fedora & GNOME

11

xxblx, мне тоже странно, я вот и думаю, не проблемы ли с python у меня.
Так как на двух системах i586 всё хорошо.

xxblx⇓ пишет:

А что за запрос?

Король и Шут

Консоль
[bodun@localhost ~]$ locale
LANG=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

Обычный юзер
Mageia 8 x86_64 Plasma

12

xxblx⇓ пишет:

В зависимости от системного языка название каталога будет меняться. А vk.com используют отнюдь не только русские. Я не хочу предусматривать 100500 возможных вариантов, по этому по умолчанию будет ~/, т.к. это 100% рабочий вариант у каждого пользователя.

Угу, это понятно и правильно, но пакет wxvkmusic лежит в русском репозитории, не-а?
xxblx, всё нормально - всё вполне настраиваемо и понятно.

13

algri14 пишет:

но пакет wxvkmusic лежит в русском репозитории, не-а?

Это ничего не меняет. Двадцать версий на все случаи жизни поддерживать желания нет wink Хватит одной универсальной.

И должен заметить, что нашим репозиторием пользуются не только русскоязычные пользователи. Например, информация по подключению нашего репозитория есть в вики чешского сообщества, португальцы пользуются (пользовались во всяком случае), во времена Mageia 2 помнится MATE 1.4, который собирал olelukoie, пользовался у них популярностью. Даже письма присылали какие-то пакеты собрать просили.
Да и если статистике посещений OneClick URPMI верить, захаживают туда со всех уголков мира туда. Я же информацию размещаю не только здесь, но и на официальном форуме.

BoDun пишет:

xxblx, мне тоже странно, я вот и думаю, не проблемы ли с python у меня.
Так как на двух системах i586 всё хорошо.

У меня на x86_64 проблем нет, так что, дело точно не в архитектуре. С другими поисковыми запросами та же проблема?

Fedora & GNOME

14

Сказал на Slayer:

Консоль
(python:23277): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed

Другие запросы, аналогичны..
Воспроизводить отказался, говорит:

03:29:50: gst_error_callback Error Message:Для воспроизведения этого потока требуется модуль Источник протокола HTTP, но он не установлен. Debug:gstplaybasebin.c(1686): gen_source_element (): /GstPlayBin:play: No URI handler for http  (ошибка 0: Выполнено)
03:29:50: wxGStreamerMediaBackend::Load - Could not set initial state to ready (ошибка 0: Выполнено)

Обычный юзер
Mageia 8 x86_64 Plasma

15

BoDun, какие-то чудесатые чудеса wink python-requests установило зависимостями? кодеки все установлены?
Судя по ошибке, что-то GStreamer у тебя артачится воспроизводить интернет-поток, что, как минимум, странно. Покажи вывод

Консоль
rpm -qa | grep gstreamer

BoDun пишет:

python:23277): Gtk-CRITICAL **: IA__gtk_range_set_range: assertion 'min < max' failed

На это не обращай внимания, это gtk-варнинг. Он никак не мешает работе программы и будет появляться даже если программа работает исправно.

Fedora & GNOME

16

Удивительные чудеса smile
rpm -qa|grep gstreamer:

Spoiler

Консоль
[bodun@localhost ~]$ rpm -qa|grep gstreamer
gstreamer0.10-mms-0.10.23-14.mga4.tainted
gstreamer1.0-plugins-ugly-1.2.2-1.mga4.tainted
lib64gstreamer1.0_0-1.2.2-1.mga4
libgstreamer0.10_0-0.10.36-7.mga4
gstreamer1.0-plugins-good-1.2.2-1.mga4
gstreamer0.10-voip-0.10.23-14.mga4.tainted
gstreamer1.0-plugins-base-1.2.2-1.mga4
gstreamer1.0-speex-1.2.2-1.mga4
gstreamer1.0-x264-1.2.2-1.mga4.tainted
gstreamer0.10-xvid-0.10.23-14.mga4.tainted
gstreamer1.0-tools-1.2.2-1.mga4
gstreamer1.0-soup-1.2.2-1.mga4
gstreamer0.10-cdparanoia-0.10.36-7.mga4
packagekit-gstreamer-plugin-0.8.14-3.1.mga4
gstreamer1.0-a52dec-1.2.2-1.mga4.tainted
gstreamer1.0-cdparanoia-1.2.2-1.mga4
gstreamer0.10-dirac-0.10.23-14.mga4.tainted
gstreamer1.0-plugins-bad-1.2.2-1.mga4.tainted
gstreamer0.10-plugins-ugly-0.10.19-9.mga4.tainted
gstreamer0.10-plugins-base-0.10.36-7.mga4
phonon-gstreamer-4.6.3-2.mga4
gstreamer0.10-farstream-0.1.2-6.mga4
gstreamer0.10-resindvd-0.10.23-14.mga4.tainted
gstreamer1.0-twolame-1.2.2-1.mga4.tainted
gstreamer1.0-gsm-1.2.2-1.mga4.tainted
lib64gstreamer0.10_0-0.10.36-7.mga4
gstreamer0.10-plugins-good-0.10.31-6.mga4
gstreamer1.0-dv-1.2.2-1.mga4
gstreamer1.0-mpeg-1.2.2-1.mga4.tainted
gstreamer1.0-rtmp-1.2.2-1.mga4.tainted
lib64gstreamer-plugins-base0.10_0-0.10.36-7.mga4
gstreamer0.10-nice-0.1.4-2.mga4
gstreamer1.0-farstream-0.2.3-3.mga4
gstreamer1.0-wavpack-1.2.2-1.mga4
gstreamer0.10-lame-0.10.19-9.mga4.tainted
gstreamer1.0-amrnb-1.2.2-1.mga4.tainted
gstreamer1.0-lame-1.2.2-1.mga4.tainted
gstreamer1.0-pulse-1.2.2-1.mga4
gstreamer1.0-flac-1.2.2-1.mga4
gstreamer1.0-cdio-1.2.2-1.mga4.tainted
gstreamer1.0-gme-1.2.2-1.mga4.tainted
gstreamer0.10-tools-0.10.36-7.mga4
gstreamer0.10-pulse-0.10.31-6.mga4
libgstreamer-plugins-base0.10_0-0.10.36-7.mga4
gstreamer1.0-libav-1.2.2-1.mga4
gstreamer0.10-musepack-0.10.23-14.mga4.tainted
gstreamer1.0-mms-1.2.2-1.mga4.tainted
gstreamer0.10-ffmpeg-0.10.13-14.mga4
lib64gstreamer-plugins-base1.0_0-1.2.2-1.mga4

Кодеки вроде ставятся большая их часть (или все) благодаря:

Консоль
[bodun@localhost ~]$ rpm -qa|grep task-codec
task-codec-video-4-2.mga4.tainted
task-codec-audio-4-2.mga4.tainted

Обычный юзер
Mageia 8 x86_64 Plasma

17

Реально мистика, ошибка с невозможностью воспроизведения интернет-потока бывает при отсутствии gstreamer1.0-plugins-ugly и gstreamer1.0-plugins-good или gstreamer0.10-plugins-ugly и gstreamer0.10-plugins-good.  У тебя все четыре пакета стоят.
Покажи ещё

Консоль
rpm -qa | grep gsturi

Fedora & GNOME

18 (2015-03-28 02:42:06 отредактировано algri14)

algri14⇓ пишет:

всё нормально - всё вполне настраиваемо и понятно.

одно плохо, программа не закрывается(простояла какое-то время в бездействии, стояла на паузе), закрыл диспетчером задач. Но после перезапуска закрыл обычным образом.

19

algri14 пишет:

одно плохо, программа не закрывается, закрыл диспетчером задач.

В настройках часом галка не стояла "сворачивать при закрытии"?

Fedora & GNOME

20 (2015-03-28 02:43:07 отредактировано algri14)

xxblx⇓ пишет:

В настройках часом галка не стояла "сворачивать при закрытии"?

Нет, не ставил, но музыка стояла на паузе. И ещё одна странность, иконка меняется на знак "Х"
https://forum.mageia.org.ru/extensions/hcs_image_uploader/uploads/10000/2000/12473/thumb/p19hephipn1j1po5t1n6b1l5n1vpg1.png

21 (2015-03-28 13:34:24 отредактировано BoDun)

xxblx⇓ пишет:

Покажи ещё

Консоль
[bodun@localhost ~]$ rpm -qa | grep gsturi
lib64gsturidownloader1.0_0-1.2.2-1.mga4.tainted

Что-то не понял, что за везение (во всех смыслах и в плохих тоже), но какого-то лешего и на нетбуке отказалась работать с теми же диагнозами. Различие лишь в, архитектуре.
Нового ничего не ставилось с момента установки и успешной первоначальной проверке.
Чуть позже на первоначальной железке проверю...

Дополнительно:
Проверил на первоначальной железке, всё работает никаких косяков.
locale:

Spoiler

Консоль
[atom@localhost ~]$ locale
LANG=ru_RU.UTF-8
LC_CTYPE=ru_RU.UTF-8
LC_NUMERIC=ru_RU.UTF-8
LC_TIME=ru_RU.UTF-8
LC_COLLATE=ru_RU.UTF-8
LC_MONETARY=ru_RU.UTF-8
LC_MESSAGES=ru_RU.UTF-8
LC_PAPER=ru_RU.UTF-8
LC_NAME=ru_RU.UTF-8
LC_ADDRESS=ru_RU.UTF-8
LC_TELEPHONE=ru_RU.UTF-8
LC_MEASUREMENT=ru_RU.UTF-8
LC_IDENTIFICATION=ru_RU.UTF-8
LC_ALL=

rpm -qa | grep gstreamer:

Spoiler

Консоль
[atom@localhost ~]$ rpm -qa | grep gstreamer
gstreamer1.0-speex-1.2.2-1.mga4
gstreamer0.10-tools-0.10.36-7.mga4
gstreamer1.0-lame-1.2.2-1.mga4.tainted
gstreamer1.0-flac-1.2.2-1.mga4
gstreamer0.10-lame-0.10.19-9.mga4.tainted
gstreamer1.0-twolame-1.2.2-1.mga4.tainted
gstreamer0.10-dirac-0.10.23-14.mga4.tainted
gstreamer1.0-gsm-1.2.2-1.mga4.tainted
gstreamer0.10-plugins-bad-0.10.23-14.mga4.tainted
gstreamer0.10-soup-0.10.31-6.mga4
gstreamer0.10-python-0.10.22-4.mga4
libgstreamer1.0_0-1.2.2-1.mga4
gstreamer0.10-plugins-ugly-0.10.19-9.mga4.tainted
gstreamer1.0-a52dec-1.2.2-1.mga4.tainted
gstreamer1.0-cdio-1.2.2-1.mga4.tainted
gstreamer0.10-plugins-base-0.10.36-7.mga4
gstreamer0.10-cdparanoia-0.10.36-7.mga4
gstreamer0.10-faad-0.10.23-14.mga4.tainted
gstreamer0.10-ffmpeg-0.10.13-14.mga4
gstreamer1.0-tools-1.2.2-1.mga4
packagekit-gstreamer-plugin-0.8.14-3.1.mga4
gstreamer1.0-cdparanoia-1.2.2-1.mga4
gstreamer1.0-dv-1.2.2-1.mga4
gstreamer1.0-plugins-base-1.2.2-1.mga4
gstreamer1.0-mpeg-1.2.2-1.mga4.tainted
gstreamer1.0-gme-1.2.2-1.mga4.tainted
gstreamer1.0-plugins-bad-1.2.2-1.mga4.tainted
gstreamer0.10-pulse-0.10.31-6.mga4
gstreamer0.10-mms-0.10.23-14.mga4.tainted
gstreamer0.10-xvid-0.10.23-14.mga4.tainted
gstreamer1.0-x264-1.2.2-1.mga4.tainted
gstreamer0.10-plugins-good-0.10.31-6.mga4
gstreamer0.10-farstream-0.1.2-6.mga4
libgstreamer-plugins-base1.0_0-1.2.2-1.mga4
gstreamer1.0-plugins-good-1.2.2-1.mga4
libgstreamer-plugins-base0.10_0-0.10.36-7.mga4
gstreamer1.0-plugins-ugly-1.2.2-1.mga4.tainted
gstreamer1.0-rtmp-1.2.2-1.mga4.tainted
phonon-gstreamer-4.6.3-2.mga4
gstreamer0.10-voip-0.10.23-14.mga4.tainted
gstreamer1.0-wavpack-1.2.2-1.mga4
gstreamer1.0-pulse-1.2.2-1.mga4
gstreamer1.0-amrnb-1.2.2-1.mga4.tainted
gstreamer1.0-soup-1.2.2-1.mga4
gstreamer0.10-musepack-0.10.23-14.mga4.tainted
gstreamer1.0-mms-1.2.2-1.mga4.tainted
gstreamer1.0-farstream-0.2.3-3.mga4
gstreamer1.0-libav-1.2.2-1.mga4
libgstreamer0.10_0-0.10.36-7.mga4
gstreamer0.10-resindvd-0.10.23-14.mga4.tainted
gstreamer0.10-nice-0.1.4-2.mga4

Консоль
[atom@localhost ~]$ rpm -qa | grep gsturi
libgsturidownloader1.0_0-1.2.2-1.mga4.tainted

Обычный юзер
Mageia 8 x86_64 Plasma

22

BoDun пишет:

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 648, in open_search
    search_result=True)
  File "/usr/lib/python2.7/site-packages/wxvkmusicapp/ui.py", line 722, in add_page
    % name)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)

BoDun, эта ошибка, судя по всему, происходит на стадии преобразования строки в юникод. В коде есть пара мест, где потенциальная проблема завёрнута в костыль, чтобы не сбоило. Но видимо в твоём случае где-то всё равно "пробивает". Потому что в качестве кодировки должно системную использовать, т.е. utf-8 в твоём случае, а у тебя всё равно пытается ascii задействовать. По этому, могу предположить что у тебя где-то под капотом тулкита wxWidgets в соответствующей функции (значение системной кодировки получается через функционал тулкита) происходит сбой.
Я подумаю над тем как можно это решить. И после выпущу минорное обновление с фиксом.

Fedora & GNOME

23 (2015-03-28 17:18:22 отредактировано BoDun)

xxblx, интересность в том, что системы i586 ставились с одного образа..
И по сути вроде бы должно быть везде одно и тоже.
На атомах одинаково 32бита, так же lxde (на нетбуке неиспользуемый kde, который есть лишь по факту, но не используется)
И один атом, позволяет приложению играть. А второй (он же нетбук) не хочет.
В системах вроде бы шибко не ковырялся (поставил как, работает и не трогаю, обновы иногда ставлю только).
Может есть вариант как найти различия, чтоб и понять проще было да и знать на будущее?

Обычный юзер
Mageia 8 x86_64 Plasma

24

BoDun пишет:

Может есть вариант как найти различия, чтоб и понять проще было да и знать на будущее?

Пакеты, с которыми различие может быть связано различие (по проблеме отказа играть вообще, а не по проблеме с поиском) я выше уже просил показать, стоят те же, что и у меня, так что, я даже не знаю что ещё посмотреть можно.

Fedora & GNOME

25

Опять повторилось, программу невозможно было закрыть обычным образом(при этом ничего не проигрывалось и не стояло на паузе), закрыл диспетчером задач. При попытке повторить - не повторяется.