#!/usr/bin/env python3
"""
Twitter sentiment analysis server.

Usage:
    twentiment-server DATA.json
    twentiment-server -h | --help

Parameters:
    DATA                    JSON file containing positive and negative tweets.

Options:
    -h --help               Show help
    --host=<host>           Set host to bind to [default: 127.0.0.1]
    --port=<port>           Set port to bind to [default: 10001]
"""


import argparse
from twentiment.server import Server
from twentiment.classifier import Classifier


def main():
    parser = argparse.ArgumentParser(description="Twitter sentiment "
                                     "analysis server")
    parser.add_argument('--host', type=str,
                        help="Set host to bind to. [default: 127.0.0.1]",
                        default="127.0.0.1")
    parser.add_argument('--port', type=int,
                        help="Set port to bind to. [default: 10001]",
                        default=10001)
    parser.add_argument('input', type=str,
                        help="JSON file containing positive and negative "
                        "tweets.")

    args = parser.parse_args()
    bind = "tcp://{}:{}".format(args.host, args.port)

    with open(args.input, 'r') as input_file:
        classifier = Classifier.from_file(input_file)

    server = Server(classifier, bind=bind)
    server.run()


if __name__ == "__main__":
    main()
#vim: ft:python
