#!/usr/bin/env python
#
# License: BSD
#   https://raw.github.com/robotics-in-concert/rocon_concert/license/LICENSE
#
##############################################################################
# Imports
##############################################################################

import sys
import argparse
import rospy
import rocon_interactions  # usually a problem naming script the same as a module, but this is a global script, so ok.
import rocon_console.console as console
import rocon_interaction_msgs.srv as interaction_srvs
import rocon_uri
import rocon_python_comms

##############################################################################
# Functions
##############################################################################


def parse_arguments():
    parser = argparse.ArgumentParser(description='Prettifies rocon interactions information.')
    args = parser.parse_args()
    return args

##############################################################################
# Main
##############################################################################

if __name__ == '__main__':
    rospy.init_node('rocon_interactions')
    args = parse_arguments()
    try:
        service_name = rocon_python_comms.find_service('rocon_interaction_msgs/GetInteractions',
                                                       timeout=rospy.rostime.Duration(5.0),
                                                       unique=True)
    except rocon_python_comms.NotFoundException as e:
        print(console.red +
              "failed to find unique service of type 'rocon_interaction_msgs/GetInteractions' [%s]" %
              str(e) + console.reset)
        sys.exit(1)
    get_interactions = rospy.ServiceProxy(service_name, interaction_srvs.GetInteractions)
    request = interaction_srvs.GetInteractionsRequest(roles=[], uri=rocon_uri.default_uri_string)
    response = get_interactions(request)
    interactions_table = rocon_interactions.InteractionsTable()
    interactions_table.load(response.interactions)
    print("%s" % interactions_table)
