LINUX.ORG.RU
ФорумTalks

просьба проверить небольшой скрипт

 


0

1

суть - скрипт для скробблинга текущего трека в статусную строку ВТЕНТАКЛЕ. (пример)
трек получаем по MPRIS.
[собственно скрипт] (зависимости: qdbus)

так вот, нужно проверить получение тегов из разных плееров (есс-но, поддерживающих интерфейс MPRIS (audacious, amarok, clementine...)).
все ф-ции работы с ВК закомментированы - ничего никуда отправляться не будет, просто теги выводятся на STDOUT.

просьба отписываться в формате: плеер, версия, работает/не работает. если не работает - приложите вывод или скриншот.
p.s. заранее спасибо:)

★★★★★

Последнее исправление: snoopcat (всего исправлений: 1)

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

все ф-ции работы с ВК закомментированы - ничего никуда отправляться не будет, просто теги выводятся на STDOUT.

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

ага, пароли ворую

#!/bin/bash

# VK scrobbler.
# by snoopcatt.
# token: https://oauth.vk.com/authorize?client_id=3723065&scope=audio,status,offline&redirect_uri=http://oauth.vk.com/blank.html&display=wap&response_type=token

VKAPI_TOKEN='' 
SERVICE_NAME="$(qdbus org.mpris.MediaPlayer2* | head -n1)"
TIMEOUT=5s
IFS=$'\n'

[ -n $SERVICE_NAME ] && echo "[$(date +%k:%M:%S]) Connected to $SERVICE_NAME" || exit 1 

trap shutdown INT TERM 

get_song_info() {
	wget --no-check-certificate "https://api.vk.com/method/audio.search.xml?q=$1&sort=2&lyrics=1&auto_complete=1&count=1&access_token=$VKAPI_TOKEN" -qO - 
}
set_broadcast() {
	wget --no-check-certificate "https://api.vk.com/method/audio.setBroadcast.xml?audio=${1}&access_token=$VKAPI_TOKEN" -qO /dev/null
}

shutdown() {
	echo -e "\n[$(date +%k:%M:%S]) Exitting..."
	#set_broadcast
	rm /tmp/vkscrobble* 2>/dev/null
	exit 
}

first=1
while :; do
	[ $first -eq 1 ] && first=0 || sleep $TIMEOUT # do-while workaround
	if qdbus $SERVICE_NAME /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlaybackStatus|grep -q Playing; then 
		metadata=($(qdbus $SERVICE_NAME /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Metadata|grep -E ':artist|:title'|sed 's/xesam\:artist\:\ //; s/xesam\:title\:\ //')) 
		[ "${metadata[0]} - ${metadata[1]}" == "$(cat /tmp/vkscrobble_last_id 2>/dev/null)" ] && continue
		vk_song_id=($(get_song_info "${metadata[0]} - ${metadata[1]}"|grep -E 'owner_id|aid'|grep -oE '[-0-9]{1,15}'))
		#set_broadcast ${vk_song_id[1]}_${vk_song_id[0]}
		echo "[$(date +%k:%M:%S]) Broadcast was set to: ${metadata[0]} - ${metadata[1]} (${vk_song_id[1]}_${vk_song_id[0]})"
		echo -n "${metadata[0]} - ${metadata[1]}" > /tmp/vkscrobble_last_id
	else
		[ "null" == "$(cat /tmp/vkscrobble_last_id 2>/dev/null)" ] && continue
		echo "[$(date +%k:%M:%S]) Broadcast removed."
		#set_broadcast 
		echo null > /tmp/vkscrobble_last_id
	fi
done

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

// какой няшный скриншот. а qbus нету, dbus не нужно или что это там. не собирал.

Spoofing ★★★★★
()

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

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

Ну чтобы вот на работе тёлочки сидят, думают как к тебе подкатить, и тут фигак - в статусе написано музло. Они срочно затариваются Вагнером и неделю ботают, чтобы «случайно» столкнувшись в коридоре было о чем поговорить кроме того, почему С++ такое говно

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

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

xbox-kid.png

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

Офигеть! Ушел писать кросспостер тегов проигрываемой песни во все мейнстримные социалочки.

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