LINUX.ORG.RU
ФорумJob

А напишите мне простенькую программу

 , ,


0

3

Сабж.

Схема интерфейса: http://ompldr.org/vZW83Mw

Цель:
Прослушивать музыку, добавляющуюся в каталог1 и его подкаталоги и перемещение их в подкаталоги каталога2 или удаление.

Описание:
Плеер сканирует рекурсивно при запуске выбранный каталог1 и выдает список mp3 файлов в таблицу (Путь в таблице относительно каталога1, например subdir/track.mp3). Также надо отображать дату изменения файла, длинну (можно брать из атрибутов/тегов при сканировании) и кол-во проигрываний (придется делать какую-то текстовую мини-БД или использовать sqlite/mysql).
Под списком кнопки управления (плей/пауза (при проигрывании плей меняется на паузу и наоборот), пред. и след. трек, полоса перемотки). И еще кнопки «удалить» и «аппрув» со списком подпапок каталога2. При удалении файл удаляется из списка и с ФС. При аппруве, файл перемещается (mv) в выбранный подкаталог каталога2 и тоже удаляется из списка. При проигрывании трека, счетчик увеличивается и сохраняется в базу.

Требования:
Qt или GTK2, язый один из (C, C++, Python), если Qt, то чтоб можно было менять иконки на кнопках (для гтк можно просто брать из системной темы). Открытая лицензия. Еще чтоб код был более-менее прокомментирован, чтоб можно было разобраться. В БД можно хранить только путь и кол-во проигрываний. В конфиге можно хранить только пути к каталогу 1 и 2. Таблица должна сортироваться по всем полям в обе стороны. Кедо/гномолибы не использовать, можно для проигрывания использовать gstreamer/mplayer/vlc. Многоплатформенность не нужна, достаточно одного гну/линукса. Мейкфайлы можно тоже не городить, лишь бы компилилось и работало. Git/hg/svn/etc приветсвуются.

Вознагрождение:
до 1000р. (Я думаю тут можно за пару часов накидать, если работал с подобным).

Есть желающие?

★★★★★

Ответ на: комментарий от xorik

Ок. Как только в выходные доберусь до компа отпишусь в теме и скину адрес репы на github.

Если все пойдет хорошо, то в воскресенье вечером можно будет начинать тестить.

trex6 ★★★★★
()

кол-во проигрываний (придется делать какую-то текстовую мини-БД или использовать sqlite/mysql).

Можно же в тегах хранить.

чтоб можно было менять иконки на кнопках (для гтк можно просто брать из системной темы)

Qt же тоже умеет брать иконки из системной темы (QIcon::fromTheme()), какая тут проблема?

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

какая тут проблема?

То что qt-шные значки выглядят не родными у меня (например в transmission-qt), хотя тема гтк-шная подхыватывается

xorik ★★★★★
() автор топика
Ответ на: комментарий от gnunixon

Следующий заказ не браузер на webkit случаем будет?

Не, тут задача специфичная: выбрать из кучи поступающей музыки годную, и разместить по каталогам.

xorik ★★★★★
() автор топика
Ответ на: комментарий от xorik

То что qt-шные значки выглядят не родными у меня (например в transmission-qt), хотя тема гтк-шная подхыватывается

Это странно, у меня Qt видит тему иконок в гноме. Возможно, в transmission просто свои иконки. Думаю, тут хватило бы возможности указать название темы иконок в конфиге программы.

gentoo_root ★★★★★
()
Ответ на: комментарий от gentoo_root

Может быть, надо какой-нибудь софт поставить, чтоб проверить

xorik ★★★★★
() автор топика
Ответ на: комментарий от xorik

ут задача специфичная: выбрать из кучи поступающей музыки годную, и разместить по каталогам.

достаточно скрипта на шел: find, player, вопрос сохранить/удалить — mv/rm

sdio ★★★★★
()
Последнее исправление: sdio (всего исправлений: 1)
Ответ на: комментарий от sdio

достаточно скрипта на шел: find, player, вопрос сохранить/удалить — mv/rm

Хм... как вариант да, надо попробовать замутить. Только вопросы надо делать асихнронные, чтоб через libnotify всплывали после каждой песни

xorik ★★★★★
() автор топика

В итоге на выходных было очень мало времени, так что успел только накидать интерфейс. Разработка постепенно движется, но завершить планирую не раньше, чем к концу этой недели.

trex6 ★★★★★
()
Ответ на: комментарий от trex6

Слуш, наверное не надо, я тут скриптов с zenity накидал, и повесил их на хоткеи. Сорри, что сразу не предупредил. Могу закинуть немного денег на мобильник, чтоб обидно не было.

xorik ★★★★★
() автор топика
Ответ на: комментарий от trex6

Если кому интересно, выкладываю исходники:

#!/bin/bash

MPD_HOST="192.168.1.3"
MUSIC_DIR="/home/ftp/music/"
DEST_DIR="/home/xor/set/"

#Usage
if [ $# -ne 1 ]
then
	echo "Usage: $0 [del|save]"
	exit 1
fi

# Get song's path
song="$MUSIC_DIR`mpc -h 192.168.1.3 -f %file% | head -n1`"

# Delete song
if [ $1 == "del" ]
then
	zenity --question --text="Песня будет удалена через 5 сек.!" --cancel-label="Отмена" --ok-label="OK" --timeout 5
	result=$?
	
	# Ok or timeout
	if [ $result == 0 -o $result == 5 ]
	then
		mpc -q -h $MPD_HOST del 0
		rm $song
	else
		exit 1
	fi
fi

if [ $1 == "save" ]
then
	dir=`ls $DEST_DIR -t | zenity --list --text "Куда сохранять?" --column "Каталог"`
	if [ $dir != "" ]
	then
		mpc -q -h $MPD_HOST del 0
		mv "$song" "$DEST_DIR$dir/"
	else
		exit 1
	fi
fi

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

xorik ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.