#!/usr/bin/env python
import logging

from satnogsclient.settings import (NETWORK_API_QUERY_INTERVAL,
                                    NETWORK_API_POST_INTERVAL)
from satnogsclient.scheduler import scheduler
from satnogsclient.scheduler.tasks import get_jobs, post_data
from satnogsclient.web.app import app

logger = logging.getLogger('satnogsclient')


if __name__ == '__main__':
    interval = NETWORK_API_QUERY_INTERVAL
    msg = 'Registering `get_jobs` periodic task ({0} min. interval)'.format(interval)
    logger.info(msg)
    scheduler.add_job(get_jobs, 'interval', minutes=interval)

    interval = NETWORK_API_POST_INTERVAL
    msg = 'Registering `post_data` periodic task ({0} min. interval)'.format(interval)
    logger.info(msg)
    scheduler.add_job(post_data, 'interval', minutes=interval)

    logger.info('Starting scheduler...')
    scheduler.start()

    try:
        logger.info('Press Ctrl+C to exit SatNOGS poller')
        app.run(host='0.0.0.0', port=5000, ssl_context='adhoc')
    except (KeyboardInterrupt, SystemExit):
        scheduler.shutdown()
