#!/usr/bin/python
# -*- coding: utf8 -*-

import sys

sys.path.insert(0, '/opt/direct-py/startrek-python-client-sni-fix/')

from startrek_client import Startrek

st_token = open('/etc/direct-tokens/startrek', 'r').read().strip()

component_tags = {'@', '!', '%', '#'}
startrek_url = 'https://st.yandex-team.ru/'

def do_script():
    client = Startrek(useragent=u'direct-tag-cloud',
                      token=st_token)
    try:
        issues = client.issues.find('Queue:DIRECTINCIDENTS')

        tags_set = set()

        print u'{:^47} {:^12} {:^30}'.format(u'Тикет', u'Не хватает', u'Задача')

        for issue in issues:
            tags_set.clear()
            for component in issue.components:
                if component.name[0] in component_tags:
                    tags_set.add(component.name[0])

            if len(tags_set) < 4:
                print u'{:47} {:12} {:30}'.format(startrek_url + issue.key,
                                                                      ', '.join([component for component in component_tags if not component in tags_set]),
                                                                      issue.summary)


    except Exception as e:
        print e


if __name__ == '__main__':
	do_script()