Перейти к публикации

nitrogen14

Пользователи
  • Публикации

    51
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем nitrogen14

  1. На официальном форуме ожидают также поддержки и внимания представителей картины.

    если у меня возникают вопросы, то мне дают на них ответы.

    ну а так тебе бы стоило сходит на форум

    - где учат внимательности :) тк валить вину на картину, хотя виноват сам это перебор

    - ко мне на форум www.pristavka.de там есть десяток разработчиков и тебе всегда помогут.

    лично я бы написал, что апи работает с демоаккаунтами, тк сам написал два плагина и знаю что апи в этом случае работат

     

    удачи

  2. ico115x95.png

     

    вчера выпустил бету 0.6

    уже вполне нормально можно смотреть картину.

    надеюсь за месяц сделать финальную версию с видеотекой и остальными примочками, которые есть у nKTVplayer для энигмы

     

    тема с обсуждением на форуме приставка.де

     

    58244680.gif

     

    34149550.gif

  3. Мера вынужденная... для защиты системы от избыточных перегрузок.

    есть статистика с каких устройств приходят избыточные запросы?

    в этом и проблема, "любители" не посылают свой опозновательный знак.

    от того ввели это чебы всех не банить за мизилла5.0

     

    думаю это касается просмотра с скриптом от consros к примеру на азбокс и других где в плейлисте на канал прописан логин

    там для получения линка на стрим сначала идет авторизация

  4. Есть вопрос на счет битрэйта.

     

    Если скажу, что хочу битрэйт 900, тогда только еще смогу посмотреть то что и есть в битрэйт 900 или мне показывает то что есть в 900 в 900 а остальное в 1500?

     

    Пример: Я хочу битрэйт 900. Если тепер посмотрю "Первый" будет такой битрэйт?

     

    TimeShift: 0 --> bitrate 900

    TimeShift: 1 --> bitrate 1500

    ...

    TimeShift: 11 --> bitrate 1500

     

    Или я только еще могу посмотрет "Первый" без "таймшифта" (TimeShift: 0) с битрэйтом 900?

    как я понял битрейт меняется только для лайв вещания. таймшифт это архив(запись с неменяемым битрейтом)

  5. спасибо @mariman за консультацию.

     

    итак мой косяк, не заметил <ts>1294834800</ts>

    использовал старую функцию запрашивающую ut_start.

    со временем ясно.

    для вычисления времени окончания последней передачи дня по епг нужно будет сделать такойжзе запрос на епг3, оно идет и на следующий день и не прийдется запрашивать весь епг на следующий день

     

    еще раз огромное спасибо за сотрудничество

  6. @mariman

    сделайте милость, подсобите.

    охото иметь длительность передачи в минутах, которую я могу вырешивать сам, если будут начало и конец передачи или сразу длинна, во всех запросах к епг.

    спасибо

    http://forum.kartina.tv/index.php?showtopi...ost&p=54627

  7. О нормальном девелопменте в этой конторе речь и не идет...

    ты что чтото разрабатываешь? если нет, так покинь эту тему со своим нытьём не по делу.

    мой плаг как пахал, так и пашет дальше

     

    сейчас 86 человек онлайн используют мой плаг

    http://stats.pristavka.de/stats_widget.php

    post-4657-1294907482_thumb.png

  8. /epg_next?cid=<ID канала>

     

    еще раз спасибо, функция пашет, но:

    зачем нужно было выкидывать циверки? типо время начала и конца передачи?

    очень не хватает этих циверок (теперь не могу показать длительность передачи)

     

    пожалуйста добавьте в просто епг последним пунктом время окончания передачи!!!

    для вас это мелочь, для меня достать время гемор. так и с последней передачей в дне проблем не будет и в епг можно показать длительность передачи.

     

    заранее благодарен

  9. товарищи!!!

    сделайте дополнительный список каналов, в котором будет отображаться текущая а также последующая передача!!!

    также ен хватает в епг у последней передачи время окончания

     

    для показа в списке канала текущей и следующей передачи мне приходится делать запрос и перелопачивать епг на канал, что вечером приводит к тормозам.

    также не могу при просмотре в архиве показать длительность последней передачи дня, тк для этого мне прийдется грузить епг на следующий день только ради того, чтобы узнать, когда начинается первая передача :(

    Ты прям как ясновидящий :) VLC тоже бывает не то маркирует, когда активна посл. передача вернее первая след. дня.

     

    Действ. неудобно, когда нужно нагружать с-му из-за такой мелочи!

     

     

    прошу...

     

    /epg_next?cid=<ID канала>

     

    спасибо!!!

    вечером проверю.

    это для текущей передачи и для последней передачи дня сработает?

  10. товарищи!!!

    сделайте дополнительный список каналов, в котором будет отображаться текущая а также последующая передача!!!

    также ен хватает в епг у последней передачи время окончания

     

    для показа в списке канала текущей и следующей передачи мне приходится делать запрос и перелопачивать епг на канал, что вечером приводит к тормозам.

    также не могу при просмотре в архиве показать длительность последней передачи дня, тк для этого мне прийдется грузить епг на следующий день только ради того, чтобы узнать, когда начинается первая передача :(

  11. еще раз хотелось бы попросить о добавлении в список каналов следующую передачу

     

    а также хотелосьбы иметь в епг списке время окончания передачи, тк возмикает проблема при показе архива последней передачи. те я не хочу качать послостью епг на следующий день, чтобы узнать, когда начинается первая передача.

    хватилобы прото у последней передачи показывать время её окончания, тк с предыдущими передачами проблем нет.

  12. ну вот коечто созрело, выкладываю как и обещал

     

    screenshotrg.jpg

     

    screenshotzj.jpg

     

    ипк еще не сделал, просто папку распаковать в плагины ну и может права поменят на 755.

    не знаю короче у меня на ву+ соло пашет, на азбоксе еще не проверял.

    вроде как весь функционал виден в видео.

     

    nKTVplayer BETA 0.14 - Enigma2 Plugin to watch Kartina.TV - IPTV - www.pristavka.de

     

    вобщем тестируйте,

    на азбоксе пашет, если заменить картинки.

    там медленное переключение и страдет синхронизация звук/видео

     

    --------

     

    обсуждение у меня на форуме

    http://www.pristavka.de/index.php/topic,7896.msg98971

  13. отчегоже, ведь до этого смотрели картину на азбоксе.

    нужен свой веб сервер и на него поставить пхпо генератор листов

    в плейлисте вия ставить запрос на вебсервер, который в итоге будет подавать активный линк на стрим.

    всё это вполне возможно, только вот тестить явно никто не хочет, у меня на это нет времени, тк занят разработкой плагина под энигму

  14. вот видео

    http://www.youtube.com/watch?v=miRinVDT7zY

     

    здесь я смог запустить родное.тв на вие.

    есть пара косяков - у родного есть плейлисты, у картины нет, но плейлист привязан к айпишнику

     

    исходники медиаплеера доступны для всех.

    думаю плагин под вий былбы мегабомбой, тк такую штуку нынче имеет почти каждый.

     

    есть ц программеры обладающие этой игровой приставкой?

    если да, то подумайте, есть шанс прославить себя на века :)

  15. функция "Выдача программы телепередач доступных каналов"

    выдает неправильное время в тэге t_start

    время бежит на час вперед

     

    id: 8 t_start: 18:00 ut_start 1291737600 (17:00 gmt+1)

     

    былобы не плохо в лист каналов добавить следующую передачу и её описание, или сделать 2й лист, где былабы эта информация.

    охото показывать в случае завершения программы следующую передачу в слиске каналов

  16. Нужна информация, как с помощью REST API получить информацию про каждый канал, поддерживается ли time shifting для этого канала.

    первый пост почитай там всё описано

     

    получи хмл со списком каналов и там есть флаг хаве арчиве или чтото в этом духе

  17. Возможности версии 0.7:

    -Отображение списка категорий

    -Отображение каналов по категориям или одним списком.

    -По кнопке "ок" начинается воспроизведение текущей передачи.

    -При нажатии на канале кнопки вправо отображается программа передач/архив. Навигация по дням с помощью кнопок PGUP/PGDN

    -Отображение и воспроизведение каналов из m3u плэйлистов. Плэйлисты для этого нужно скопировать в xKartina\playlists[/quote

    http://www.pristavka.de/index.php/board,82.0.html

  18. кто может писать плаги под енигму2?

    главные скрипты готовы, можно делать бесплатный плаг

    http://www.pristavka.de/index.php/topic,7240.0.html

     

    # (c) Eugene Bond
    # eugene.bond@gmail.com
    #
    # kartina tv XML api
    
    import urllib2
    from xml.dom import minidom
    from elementtree.ElementTree import parse, tostring
    from pprint import pprint
    from time import time, localtime, strftime
    from datetime import datetime, date, timedelta
    
    import re
    import os 
    
    
    KARTINA_API = 'http://iptv.kartina.tv/api/xml/%s'
    
    
    class kartina:
        
        def __init__(self, login, password):
            self.SID = None
            self.channels = []
            self.channels_ttl = 0
            self.login = login
            self.password = password
            self.servertime = 0
            self.epg_time = 0
            self.epg = []
            self.packet_name = None
            self.packet_expire = None
        
        def _request(self, cmd, params):
            
            if self.SID == None:
                if cmd != 'login':
                    self._auth(self.login, self.password)
            
            url = KARTINA_API % cmd
            url = url + '?' + params
            if (self.SID != None):
                url = url + '&' + self.SID
            #log.info('Requesting %s' % url)
            
            req = urllib2.Request(url, None, {'User-agent': 'Mozilla/5.0', 'Connection': 'Close'})
            res = parse(urllib2.urlopen(req)).getroot()
            
            self._errors_check(res)
            
            return res
        
        def _auth(self, user, password):
            response = self._request('login', 'login=%s&pass=%s' % (user, password))
            
            #pprint ( tostring(response, 'UTF-8'))
            
            if response.findtext('sid'):
                self.SID = '%s=%s' % (response.findtext('sid_name'), response.findtext('sid'))
            if response.findtext('servertime'):    
                self.servertime = response.findtext('servertime')
            if response.findtext('account/packet_name'):    
                self.packet_name = response.findtext('account/packet_name')
            if response.findtext('account/packet_expire'):    
                self.packet_expire = response.findtext('account/packet_expire')
    
            
        
        def _errors_check(self, xml):
            
            if len(xml.findall('error')):
                print 'ERROR'
                print tostring(xml, 'UTF-8')
                self.SID = None
        
        
        def channel_list(self):
            if self.channels_ttl < time():
                xmlChannels = self._request('channel_list', '')
                self.channels = []
                #tostring(xmlChannels, 'UTF-8')
                
                for group in xmlChannels.findall('groups/item'):
                    group_number = group.findtext('id')
                    if not group_number:
                            group_number = ""
                    group_name = group.findtext('name')
                    if not group_name:
                            group_name = ""
                    
                    for channel in group.findall('channels/item'):
                        programm = channel.findtext('epg_progname')
                        if not programm:
                            programm = ""
                        m = re.search("[^\n]+", programm)
                        prog = ""
                        desc = ""
                        if m:
                            prog = m.group(0).strip()
                            if len(m.groups()) > 1:
                                desc = m.group(1).strip()
                        
                        epg_start = channel.findtext('epg_start')
                        if not epg_start:
                            epg_start = ""
                            
                        epg_end = channel.findtext('epg_end')
                        if not epg_end:
                            epg_end = ""                    
                            
                        self.channels.append( (
                            channel.findtext('id'),
                            channel.findtext('name'),
                            prog,
                            desc,
                            epg_start,
                            epg_end,
                            channel.findtext('is_video'),
                            channel.findtext('have_archive'),
                            channel.findtext('protected'),
                            group_number,
                            group_name,
                            programm
                        ))
                self.channels_ttl = time() + 600
            
            return self.channels
        
        def channel_url_live(self, id):
            params = 'cid=%s&protect_code=%s' % (id, self.password)
            response = self._request('get_url', params)
            url = response.findtext('url')
            url = re.search("http[^ ]*.",url).group(0).replace("\"","").strip()
        
            return url
        
    
        def channel_url_archive(self, id, gmt_time):
            params = 'cid=%s&gmt=%s&protect_code=%s' % (id, gmt_time, self.password)
            response = self._request('get_url', params)
            url = response.findtext('url')
            url = re.search("http[^ ]*.",url).group(0).replace("\"","").strip()
            
            return url        
            
             
        def get_epg(self, id, day):
    
            params = 'cid=%s&day=%s' % (id, day)
            xmlEpg = self._request('epg', params)
            #pprint ( tostring(xmlEpg, 'UTF-8'))
            #tostring(xmlEpg, 'UTF-8')
            self.epg = []
            
            if xmlEpg.findtext('servertime'):    
                self.servertime = xmlEpg.findtext('servertime')
                
            for epg in xmlEpg.findall('epg/item'):
                
                ut_start = epg.findtext('ut_start')
                if not ut_start:
                    ut_start = ""
                
                epg_programm = epg.findtext('progname')
                if not epg_programm:
                    epg_programm = ""
                    
                m = re.search("[^\n]+", epg_programm)
                epg_prog = ""
                epg_desc = ""
                
                if m:
                    epg_prog = m.group(0).strip()
                    if len(m.groups()) > 1:
                        epg_desc = m.group(1).strip()
                
                self.epg.append( (
                    ut_start,
                    epg_prog,
                    epg_desc,
                    epg_programm
                    
                ))
    
            return self.epg
            
                
        def test(self):
            if not self.servertime:
                self._auth(self.login, self.password)
            
            for channel in self.channel_list():
              #print channel
              print channel[1]
              print channel[2]
              #print channel[3]
              #print channel[11].encode('utf-8')
              #print ""
              #print channel[0];
              #print channel[1].encode('utf-8')
            
            #pprint(self.channel_url_live(6))
            
            day_minus_two = datetime.fromtimestamp(float(self.servertime)) - timedelta(days=3)
            day_minus_two = day_minus_two.strftime("%d%m%y")
    
    
            for epg in self.get_epg(7,day_minus_two):
                print epg[1]
                print epg[2]  
                #print epg[3]
                print ""
    
    
            
            #today = strftime("%d%m%y",todaytime)
            #pprint(self.servertime)
            #pprint(today)
    
    
    if __name__ == '__main__':
        foo = kartina('147', '741')
        foo.test()
        
    #test = u'\u041f\u0435\u0440\u0432\u044b\u0439 \u041d\u0430 \u043d\u043e\u0447\u044c \u0433\u043b\u044f\u0434\u044f'
    #print test.encode('utf-8')       
    #print strftime("%d%m%y", gmtime())

×
×
  • Создать...