mirror of
				https://github.com/KevinMidboe/Node-Com-Handler.git
				synced 2025-10-29 17:50:27 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import json
 | |
| import xml.etree.ElementTree as ET
 | |
| from collections import OrderedDict
 | |
| 
 | |
| 
 | |
| def plex():
 | |
| 	# XML parsing, creates a tree and saves the root node as root
 | |
| 	tree = ET.parse('plex.xml')
 | |
| 	root = tree.getroot()
 | |
| 
 | |
| 	plex_dict = OrderedDict()
 | |
| 	i = 0
 | |
| 	# The root node named MediaContainer has a size variable that holds number of active processes.
 | |
| 	# If this is '0' then there are none playing, no need to compute.
 | |
| 	if (root.get('size') != '0'):
 | |
| 
 | |
| 		# Get load of CPU and I/O
 | |
| 		plex_dict['load'] = '0.05 0.05 0.05 1/262 15997'
 | |
| 		plex_dict['cur'] = root.get('size')
 | |
| 
 | |
| 		# Goes through all the 'video' elements in MediaContainer
 | |
| 		for video in root.findall('Video'):
 | |
| 			playing_dict = OrderedDict()
 | |
| 			if (video.get('type') == 'movie'):
 | |
| 				playing_dict['title'] = video.get('title')
 | |
| 
 | |
| 			elif (video.get('type') == 'episode'):
 | |
| 				playing_dict['title'] = video.get('title')
 | |
| 				playing_dict['series'] = video.get('grandparentTitle')
 | |
| 
 | |
| 			playing_dict['progress'] = "{0:0.1f}".format(float(video.find('TranscodeSession').get('progress')))
 | |
| 			playing_dict['state'] = video.find('Player').get('state')
 | |
| 			playing_dict['player'] = video.find('Player').get('platform')
 | |
| 			playing_dict['user'] = video.find('User').get('title')
 | |
| 
 | |
| 			plex_dict[i] = playing_dict
 | |
| 			i+=1
 | |
| 
 | |
| 		return plex_dict
 | |
| 	else: 
 | |
| 		return 'Null playing'
 | |
| 
 | |
| plex_dict = plex()
 | |
| 
 | |
| 
 | |
| # plex_dict = {
 | |
| # 	"Load": '0.05 0.05 0.05 1/262 15997',
 | |
| # 	"Cur":  '2',
 | |
| # }
 | |
| 
 | |
| # playing_1 = {'Playing': 'Interstellar', 
 | |
| # 	'State': 'Playing', 'Prog': '58.6',
 | |
| # 	'Device': 'iPhone', 'User': 'KevinMidboe'}
 | |
| 
 | |
| # playing_2 = {'Playing': 'Home Alone', 
 | |
| # 	'State': 'Stopped', 'Prog': '32.9',
 | |
| # 	'Device': 'Samsung TV', 'User': 'MajElg'}
 | |
| 
 | |
| # # print(playing_1, playing_2)
 | |
| 
 | |
| # i = 5
 | |
| 
 | |
| # plex_dict[i] = playing_1
 | |
| # plex_dict.update(playing_2)
 | |
| 
 | |
| # print(plex_dict)
 | |
| 
 | |
| # plex_dict["Playing"][0].update({'State' : 'Playing'})
 | |
| print(plex_dict)
 | |
| json_plex = json.loads(json.dumps(plex_dict))
 | |
| print(json_plex)
 | |
| # print(json_plex['Playing'][0])
 | |
| 
 | |
| for key, item in plex_dict.items():
 | |
| 	print(str(key) + '\t', str(item) + '\n')
 | |
| 	try:
 | |
| 	    key = int(key)
 | |
| 	    # print(item)
 | |
| 	except ValueError:
 | |
| 	    pass  # it was a string, not an int.
 | |
| 
 | |
| 
 |