def player_add_group(plr, group, baseurl, authstr): ''' Add Player object to Group by name. Arguments: plr Player Transfer Object or dict, e.g.: {'id': 123} group Group name. baseurl Base URL to Content Manager authstr "user:pwd" credential string. Returns: True on success. None on failure. ''' cm = scws.ConManager(baseurl, authstr, api_vers='v1.2') src = dict(column='name', restriction='EQUALS', value=group) try: groups = cm.player.listPlayerGroups(searchCriteria=src) if groups: cm.player.addPlayerGroup(dict(playerId=plr.id), playerGroupId=groups[0].id) return True else: _log.error('Group %s not found.' % group) except Exception: pass
def player_create(name, baseurl, authstr, query=True, desc='', enabled=True): ''' Creates a Player object in Content Manager, with the given name. Arguments: name Player name baseurl Base URL to Content Manager authstr "user:pwd" credential string. query Switch to player_query() if Player object already exists. enabled Player is allowed to download and run content. Returns: Player's Transfer Objec on success. None on failure, e.g. if query=False and Player already exists. ''' cm = scws.ConManager(baseurl, authstr) try: pto = dict(name=name) if desc: pto['description'] = desc pto['enabled'] = enabled players = cm.player.create(player=pto) if players: return players[0] except ValueError: _log.warn('Switching to Player webservice query to find details.') if query: return player_query_ws(name, baseurl, authstr) except Exception: _log.critical('Unable to continue.') sys.exit(_ERR_MISC)
def main(): ' Get list of files and upload.' log.debug( '%s v%s scws:v%s soaplib:v%s' % (sys.argv[0], __version__, scws.__version__, soaplib.__version__)) cm = scws.ConManager(opts.baseurl, opts.authstr) # Create a CM object Errors = None for filename in args: try: if not opts.verbose or opts.very_verbose: print 'uploading: ', filename, '... ', sys.stdout.flush() fileIds = cm.upload_file(filename, opts.network, subfolder=opts.subfolder, upload_method='PUT', upload_type=opts.upload_type) log.info('uploaded %s' % filename) if not opts.verbose or opts.very_verbose: print 'Done.' except KeyboardInterrupt: log.warn('Killed by Ctrl-C.') return ERR_KILL except Exception: Errors = True if Errors: return ERR_UPLD
def player_set_channel(plr, channel, baseurl, authstr): ''' Assign a Player object's first display to a channel found by name. Arguments: plr Player Transfer Object or dict, e.g.: {'id': 123} channel Channel name. baseurl Base URL to Content Manager authstr "user:pwd" credential string. Returns: True on success. None on failure. ''' cm = scws.ConManager(baseurl, authstr) src = dict(column='name', restriction='EQUALS', value=channel) try: # get channel ids channels = cm.channel.list(searchCriteria=src) if not channels: _log.error('Channel %s not found.' % channel) return displays = cm.player.getPlayerDisplays(playerId=plr.id) if displays: cm.player.updatePlayerDisplay(playerDisplay=dict( id=displays[0].id, channelId=channels[0].id, screenCounter=1)) return True else: displays = cm.player.addPlayerDisplay(playerId=plr.id, playerDisplay=dict( channelId=channels[0].id, screenCounter=1))[0] if displays: cm.player.updatePlayerDisplay( playerDisplay=dict(id=displays[0].id, channelId=channels[0].id, screenCounter=1)) return True else: _log.error('Unable to create display/set channel.') return except Exception: pass
def player_query_ws(name, baseurl, authstr): ''' Query Content Manager via Webservice for an existing Player object by name. Arguments: name Player name baseurl Base URL to Content Manager authstr "user:pwd" webservice (not Player) credential string. Returns: Player's Transfer Object on success. None on failure. ''' cm = scws.ConManager(baseurl, authstr) src = dict(column='name', restriction='EQUALS', value=name) players = cm.player.list(searchCriteria=src) if players: return players[0] else: _log.critical('Player %s not found.' % name) sys.exit(_ERR_MISC)
import scalalib # update these to the correct values hoststr = 'cm.yourco.com:8080' baseurl = 'http://%s/ContentManager/' % hoststr authstr = 'scalaweb:pword' debug = True # enables verbose info printed to console debug = False # disables verbose info printed to console, Ctrl+T to flip log = scalalib.get_logger(level='debug' if debug else 'warn') # can override password on the command line if len(sys.argv) > 1: authstr = sys.argv[1] # First, create a Content Manager object cm = scws.ConManager(baseurl, authstr) # Examples below do_test = [True, False, False, False, False, False] do_test.insert(0, None) # 1 based # # 1. Simple player listing # ---------------------------------------------------------------------- if do_test[1]: print '\nPlayer list ...' players = cm.player.list() for player in players: print ' * Name: ', player.name
import sys, scws try: baseurl = sys.argv[1] authstr = sys.argv[2] print scws.ConManager(baseurl, authstr).cmversioninfo.getVersionNumber()[0] sys.exit(0) except Exception, e: print e sys.exit(1)