Add an MPD service detection plugin
This commit is contained in:
		
							parent
							
								
									144b8f9c58
								
							
						
					
					
						commit
						2e32296dfc
					
				
							
								
								
									
										45
									
								
								plugins/mpd.lua
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								plugins/mpd.lua
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,45 @@ | ||||
| -- | ||||
| -- mpd.lua: Music Player Daemon service detection plugin | ||||
| -- | ||||
| -- Copyright (c) 2015, Přemysl Janouch <p.janouch@gmail.com> | ||||
| -- | ||||
| -- Permission to use, copy, modify, and/or distribute this software for any | ||||
| -- purpose with or without fee is hereby granted, provided that the above | ||||
| -- copyright notice and this permission notice appear in all copies. | ||||
| -- | ||||
| -- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | ||||
| -- WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | ||||
| -- MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY | ||||
| -- SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | ||||
| -- WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION | ||||
| -- OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN | ||||
| -- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | ||||
| -- | ||||
| 
 | ||||
| ponymap.check_api_version (1) | ||||
| 
 | ||||
| local MPD = {} | ||||
| MPD.__index = MPD | ||||
| 
 | ||||
| function MPD.new (unit) | ||||
| 	return setmetatable ({ unit = unit, buf = "" }, MPD) | ||||
| end | ||||
| 
 | ||||
| function MPD:on_data (data) | ||||
| 	self.buf = self.buf .. data | ||||
| 	local line = string.match (self.buf, "([^\n]*)\n") | ||||
| 	if line then | ||||
| 		local version = string.match (line, "OK MPD (.*)") | ||||
| 		if version then | ||||
| 			self.unit:add_info ("version " .. version) | ||||
| 			self.unit:set_success (true) | ||||
| 		end | ||||
| 		self.unit:abort () | ||||
| 	end | ||||
| end | ||||
| 
 | ||||
| ponymap.register_service ({ | ||||
| 	name = "MPD", | ||||
| 	flags = 0, | ||||
| 	new_scan = MPD.new | ||||
| }) | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user