#!/usr/bin/python
#------------------------------------------------------------
# License: GPL (http://www.gnu.org/licenses/gpl-3.0.html)
# plugin.video.tehnik:
# By: deltha@gmail.com
#------------------------------------------------------------
# TehniK - 2.0.7
#------------------------------------------------------------

from xbmcswift2 import Plugin

STRINGS = {
    'page': 30001,
    'itnc': 30100,
    'mobiles': 30101,
    'photovideo': 30102,
    'tutorials': 30103,
    'companies': 30104,
    'telecom': 30105,
    'games': 30106,
    'search': 30200,
    'title': 30201
}

YOUTUBE_ITNC = (
{
        'name': 'Altex Reviews',
        'logo': 'altex.png',
        'channel_id': 'UCeKDPIHminC91rxZpdoqLOA',
        'user': 'AltexRomania',
    }, {
        'name': 'Emag',
        'logo': 'emag.png',
        'channel_id': 'UC2u8VWZlMKdR3yACwEYUOgQ',
        'user': 'wwweMAGro',
    }, {
        'name': 'Magazinele Flanco',
        'logo': 'flanco.png',
        'channel_id': 'UCsYdFv7QHOOy4H0H1bMRT_A',
        'user': 'MagazineleFlanco',
    }, {
        'name': 'Media Galaxy',
        'logo': 'mediagalaxy.png',
        'channel_id': 'UCgXrD6KUtfljFw0dZuPt7VQ',
        'user': 'MediaGalaxy',
    }, {
        'name': 'Media Dot Ro',
        'logo': 'mediadot.png',
        'channel_id': 'UCZDnuO5F4kXmZ3I0ydg3U8w',
        'user': 'MediaDOTRO',
    }, {
        'name': 'PC Garage Video Reviews',
        'logo': 'pcgarage-red.png',
        'channel_id': 'UCO2eTgt3_AlVbK4jFokA-NA',
        'user': 'PCGarageRO',
    }, {
        'name': 'PC Garage TV',
        'logo': 'pc-garage-srl1.jpg',
        'channel_id': 'UCioQHDZMMkcq4703aNrp9UQ',
        'user': 'PCGarageTV',
    }, {
        'name': 'Zona IT',
        'logo': 'zonait.png',
        'channel_id': 'UCCUnAfa_A5XR5NyoPgErmlg',
        'user': 'ArealIT',
    },
)

YOUTUBE_MOBILES = (
{
        'name': 'Arena IT',
        'logo': 'arenait.png',
        'channel_id': 'UCxWoZ5i1puQLZPeURY5DajQ',
        'user': 'arenaitnet',
    }, {
        'name': 'Gadget.Ro',
        'logo': 'gadgetro.png',
        'channel_id': 'UChFVtLbhlxHlIwFwrK7-1gw',
        'user': 'GadgetRoVideo',
    }, {
        'name': 'Gadget-Talk',
        'logo': 'gadget-talk.png',
        'channel_id': 'UCZkBljLHKvZkoo4aKdJuExQ',
        'user': 'GadgetTalkRO',
    }, {
        'name': 'George Buhnici',
        'logo': 'gbuhnici.png',
        'channel_id': 'UCNz5n8PoSGYSwkOH_SMnl2A',
        'user': 'gbuhnici',
    }, {
        'name': 'Go 4 It',
        'logo': 'go4it.png',
        'channel_id': 'UCDyRWzRFgTrCxKB3Dr-y4Mg',
        'user': 'go4itro',
    }, {
        'name': 'GSMLand',
        'logo': 'gsmland.png',
        'channel_id': 'UCCwpDzejpm1hBYjZ91qOHAw',
        'user': 'GSMLandRo',
    }, {
        'name': 'Lab 501',
        'logo': 'lab501.jpg',
        'channel_id': 'UCGW-SJJWuNv4NRnVUuldbYQ',
        'user': 'lab501ro',
    }, {
        'name': 'Market Online',
        'logo': 'marketonline.png',
        'channel_id': 'UCJd5DaTI7FVkg4-aAc-tsbA',
        'user': 'MarketOnlineRO',
    }, {
        'name': 'Mobilissimo',
        'logo': 'mobilissimo.png',
        'channel_id': 'UChYnF1OycKQ-VoAuVpD9jYg',
        'user': 'mobilissimo',
    }, {
        'name': 'Playtech',
        'logo': 'playtech.png',
        'channel_id': 'UC_1cms0pNhUGbJZUjbIzO3A',
        'user': 'playtechRo',
    }, {
        'name': 'Telefonul Tau',
        'logo': 'telefonultau.png',
        'channel_id': 'UCz72pVnmoBVrBnIbM6zhN8g',
        'user': 'telefonultau',
    },
)

YOUTUBE_PHOTOVIDEO = (
{
        'name': 'F64 Studio',
        'logo': 'f64.png',
        'channel_id': 'UC6e3Vbt6mr-rWDkzSK2hCSw',
        'user': 'f64ro',
  }, {
        'name': 'Nikonisti Romania',
        'logo': 'nikonisti.png',
        'channel_id': 'UCL89IijjGc6XtknU8B_23sA',
        'user': 'nikonistii',
    },
)

YOUTUBE_TUTORIALS = (
{
        'name': 'CreativeMonkeyzArmy',
        'logo': 'creativemonkeyz.png',
        'channel_id': 'UCJRnlF9sHMvFkoizKqXVQdA',
        'user': 'CreativeMonkeyzArmy',
    },{
        'name': 'Videotutorial Ro',
        'logo': 'videotutorialro.png',
        'channel_id': 'UC70ZVoa5VqukRti8djz2roQ',
        'user': 'VideotutorialR0',
    },
)

YOUTUBE_COMPANIES = (
    {
        'name': 'Allview Mobile',
        'logo': 'allview.png',
        'channel_id': 'UCOGo7QtmSiHwR3YJ0Dr1auw',
        'user': 'allviewmobile',
    }, {
        'name': 'Asus Romania',
        'logo': 'asus.png',
        'channel_id': 'UCLJ3bI_qlphy9iHNYzGkbzg',
        'user': 'UCLJ3bI_qlphy9iHNYzGkbzg',
    }, {
        'name': 'Bit Defender',
        'logo': 'bitdefender.png',
        'channel_id': 'UCCuVBVczq1ShkwL-BXRU6UA',
        'user': 'BitDefenderWorld',
    }, {
        'name': 'Canon Romania',
        'logo': 'canonromania.png',
        'channel_id': 'UCu7GfIyU1dCFTHrEGnfHsuQ',
        'user': 'CanonRomania',
    }, {
        'name': 'Evolio Romania',
        'logo': 'evolio.png',
        'channel_id': 'UCZyc7nENKlmw5dyj5_-GlRg',
        'user': 'EvolioRomania',
    }, {
        'name': 'HP Romania',
        'logo': 'hp.png',
        'channel_id': 'UCqcEzOKaA4nc0gISklN0Ryw',
        'user': 'HPRomania',
    }, {
        'name': 'Lenovo Romania',
        'logo': 'lenovo.png',
        'channel_id': 'UCRxrekuulBTmjNcrd0K7Jtg',
        'user': 'LenovoRomania',
    }, {
        'name': 'Panasonic Romania',
        'logo': 'panasonic.png',
        'channel_id': 'UCjjAPnk3_X1LGdp_q2eeNJg',
        'user': 'PanasonicRomania',
    }, {
        'name': 'Philips TV Romania',
        'logo': 'philips.png',
        'channel_id': 'UCsfbmzqkTlVqXIRlHFA8kkw',
        'user': 'PhilipsTVRomania',
    }, {
        'name': 'PNI Electronics',
        'logo': 'pni.png',
        'channel_id': 'UCxja_B31Dj3TrhrYw1ymFhA',
        'user': 'PNIelectronics',
    }, {
        'name': 'Samsung',
        'logo': 'samsung.png',
        'channel_id': 'UCG9lzwwhR70vM1JdVQGGfjA',
        'user': 'SamsungTubeRomania',
    }, {
        'name': 'Toshiba Romania',
        'logo': 'toshiba.jpg',
        'channel_id': 'UCKptuTzAzZAr6UN6R26PwWw',
        'user': 'toshibaromania',
    }, {
        'name': 'Sony',
        'logo': 'sony.png',
        'channel_id': 'UCSDWiL-3tzO1yXLYOYU9lyQ',
        'user': 'sonyelectronics',
    },
)

YOUTUBE_TELECOM = (
{
        'name': 'Digi',
        'logo': 'digi.jpg',
        'channel_id': 'UC7NlfYYuSUzY9xhUiOTFF0w',
        'user': 'TheDigiVideo',
    }, {
        'name': 'Orange Romania',
        'logo': 'orange.jpg',
        'channel_id': 'UChfXOsAyyyDFVxhP2hgqP5w',
        'user': 'orangeromania',
    }, {
        'name': 'Telecom Tv',
        'logo': 'telecomtv.jpg',
        'channel_id': 'UC2AJd8MJsEvHQ4ZUTxGHEag',
        'user': 'ivaciu',
    }, {
        'name': 'Telekom Romania',
        'logo': 'telekom.jpg',
        'channel_id': 'UCHVuhHj_RaGp1Mblkj-bs0A',
        'user': 'telekomromania',
    }, {
        'name': 'Vodafone Buzz',
        'logo': 'vodafone.jpg',
        'channel_id': 'UCdQu6AvIaARgtqMtMQ42F1Q',
        'user': 'vodafonebuzz',
    }, {
        'name': 'Upc',
        'logo': 'upc.jpg',
        'channel_id': 'UChjix-wxtZq4HN_mzQYNO_g',
        'user': 'UChjix-wxtZq4HN_mzQYNO_g',
    },
)

YOUTUBE_GAMES = (
    {
        'name': 'GamaGanda',
        'logo': 'gamaganda.png',
        'channel_id': 'UCZpkjwyi1HRvDhYiUey1u_w',
        'user': 'GamaGanda',
    }, {
        'name': 'Gamextv',
        'logo': 'gamextv.png',
        'channel_id': 'UCdY3hmybN3THA--GLU2w1bw',
        'user': 'gamextvro',
    }, {
        'name': 'Gaming HD',
        'logo': 'gaminghd.png',
        'channel_id': 'UCW-thz5HxE-goYq8yPds1Gw',
        'user': 'HDGamingHD',
    }, {
        'name': 'War Arena Gaming',
        'logo': 'wararenagaming.png',
        'channel_id': 'UCMM64ps97PbMrpVsnzE2H9w',
        'user': 'wararenagamingro',
    },
)

YOUTUBE_URL ='plugin://plugin.video.youtube/channel/%s/?page=1'

plugin = Plugin()

@plugin.route('/')
def show_root_menu():
    items = [
        {'label': _('itnc'),
         'path': plugin.url_for('show_itnc')},
        {'label': _('mobiles'),
         'path': plugin.url_for('show_mobiles')},
        {'label': _('photovideo'),
         'path': plugin.url_for('show_photovideo')},
        {'label': _('tutorials'),
         'path': plugin.url_for('show_tutorials')},
        {'label': _('companies'),
         'path': plugin.url_for('show_companies')},
        {'label': _('telecom'),
         'path': plugin.url_for('show_telecom')},
        {'label': _('games'),
         'path': plugin.url_for('show_games')},
    ]
    return plugin.finish(items)

@plugin.route('/itnc/')
def show_itnc():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_ITNC]
    return plugin.finish(items)

@plugin.route('/mobiles/')
def show_mobiles():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_MOBILES]
    return plugin.finish(items)

@plugin.route('/photovideo/')
def show_photovideo():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_PHOTOVIDEO]
    return plugin.finish(items)

@plugin.route('/tutorials/')
def show_tutorials():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_TUTORIALS]
    return plugin.finish(items)

@plugin.route('/companies/')
def show_companies():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_COMPANIES]
    return plugin.finish(items)

@plugin.route('/telecom/')
def show_telecom():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_TELECOM]
    return plugin.finish(items)

@plugin.route('/games/')
def show_games():
    items = [{
        'label': channel['name'],
        'thumbnail': get_logo(channel['logo']),
        'path': YOUTUBE_URL % channel['channel_id'],
    } for channel in YOUTUBE_GAMES]
    return plugin.finish(items)

def get_logo(logo):
    addon_id = plugin._addon.getAddonInfo('id')
    return 'special://home/addons/%s/resources/media/%s' % (addon_id, logo)

def _(string_id):
    if string_id in STRINGS:
        return plugin.get_string(STRINGS[string_id])
    else:
        plugin.log.warning('String is missing: %s' % string_id)
        return string_id

def log(text):
    plugin.log.info(text)

if __name__ == '__main__':
    plugin.run()
