blob: 0472226f537c6aeeccf4fd6781d99d25e977128b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# =============================================================================
# wee-now-playing.rb (c) March 2006 by Tassilo Horn <heimdall@uni-koblenz.de>
#
# Licence : GPL v2
# Description : Print what amaroK or moc is playing
# Syntax : /np
# => <nick> is listening to <Artist> - <Title>
# Precond : needs Ruby (1.8) and amaroK or moc (Music on Console)
#
# =============================================================================
def get_np_info
artist = title = ""
catch( :info_available ) do
# AMAROK
# ======
# The dcopfind returns the string "DCOPRef(amarok,)" if amaroK is
# running, "" otherwise. So if the string is longer than 0 we can get
# the track.
if `dcopfind amarok`.length > 0
artist = `dcop amarok player artist`.chomp
title = `dcop amarok player title`.chomp
throw( :info_available )
end
# MOCP
# ====
# Amarok was not running, so check if mocp plays something!
if !`ps -e | grep mocp`.empty?
info_string = `mocp -i`
if !(info_string =~ /^State: STOP/)
info_string.grep(/^Artist:|^SongTitle:/) do |line|
if line =~ /^Artist:/
artist = line.gsub!(/^Artist:/, '').strip!
else
title = line.gsub!(/^SongTitle:/, '').strip!
end
end
throw( :info_available )
end
end
end
if !artist.empty? && !title.empty?
"#{artist} - #{title}"
else
""
end
end
def bye(server='', args='')
return Weechat::PLUGIN_RC_OK
end
def print_now_playing(server='', args='')
np_string = get_np_info
if np_string.empty?
np_string = "nothing"
end
Weechat.command( "/me listenes to " + np_string + "." )
end
def weechat_init
Weechat.register("wee-now-playing", "0.1", "bye", "print now-playing infos")
Weechat.add_command_handler("np", "print_now_playing")
return Weechat::PLUGIN_RC_OK
end
|