Ярославль


Страницы: (1372) « Первая ... 1290 1291 1292 1293 ... Последняя »  ( Перейти к первому непрочитанному сообщению ) Закрытая темаСоздание новой темыСоздание опроса

Ростелеком

Buzzzzer
Дата 31.05.2015 - 23:08
Цитировать сообщение




OMG!
*****

Профиль
Группа: Пользователи
Сообщений: 2407
Пользователь №: 53280
Регистрация: 16.06.2010 - 20:05





ping-85
Ой да ладна. Линуха все пугаются. Ваша тп тоже меня заставляла комп к ыптвплеером подключать, когда у меня половина каналов не але, когда я сказал, что я смотрю на сборке линуха с хбмс и я стопудов не причем.
Заученый порядок действий тоже раздражает. Типа воткните напрямую, какой ипишник,а обновили ли плей лист и тд.
Хотя говоришь что не домохозяйка и все со своей стороны уже проверил. Нееет все равно заставляют ))
Я фиксатор у штекера сломал с этими перетыками. Переобжимать пришлось )
Но справедливости ради заявку приняли и техники были на след. день smile.gif


Это сообщение отредактировал Buzzzzer - 31.05.2015 - 23:15
PMПисьмо на e-mail пользователю
Top
rk0se
Дата 31.05.2015 - 23:35
Цитировать сообщение




Чатланин
**

Профиль
Группа: Пользователи
Сообщений: 88
Пользователь №: 164808
Регистрация: 25.08.2014 - 15:05





ping-85
Buzzzzer
С вами ростелеком хоть общается, билайн вот вообще на мои письма реагировать перестал после того как разговор пошел о разнице скоростей на L2 и L3 уровнях smile.gif)
Упомянуть о том, что у меня все компы дома на *nix ОС и интернетом рулит микротик я не успел smile.gif))
PMПисьмо на e-mail пользователю
Top
March
Дата 1.06.2015 - 11:32
Цитировать сообщение




Достойное по делам нашим мы получаем...
*******

Профиль
Группа: Пользователи
Сообщений: 11887
Пользователь №: 26494
Регистрация: 28.10.2007 - 15:13





Цитата (Fandor)
Ребутните приставку, помогает.

Fandor, в данном случае как раз наоборот. =) При перезагрузке ТВ-приставки (выключение её эл. питания и снова включение) она проверяет - есть ли на сервере обновление для встроенного в неё ПО. И если есть, то скачивает его из Интернета и обновляет его в самой себе.

Цитата (OlegL @ 31.05.2015 - 00:20)
Ерунда какая то лентяйка перестала предыдущий канал включать вместо него вылезает окошко выбора фильмов каких то, как исправить?

OlegL, это не баг, а фича, к сожалению. Видимо маркетологи решили, что очень мало абонентов пользуются такой интерактивной функцией интерактивного ТВ от Ростелеком, как "Видеопрокат". Многие, я так думаю, просто даже не знают наверно о ней. Вот и решили видимо "напомнить о ней " таким, не очень удобным для некоторых, способом - добавили в очередную версию ПО ТВ-приставки такое изменение функциональности одной из кнопок пульта.
PMПисьмо на e-mail пользователю
Top
wdaw
Дата 1.06.2015 - 18:05
Цитировать сообщение




Новичок
*

Профиль
Группа: Новички
Сообщений: 1
Пользователь №: 169774
Регистрация: 28.11.2014 - 17:51





У меня в личном кабинете пропал тарифный план, пишет данные не доступны, что бы это могло значить?
PMПисьмо на e-mail пользователю
Top
Alexnf
Дата 1.06.2015 - 21:57
Цитировать сообщение




Эцилопп
****

Профиль
Группа: Пользователи
Сообщений: 858
Пользователь №: 18353
Регистрация: 16.05.2007 - 08:51





Цитата (wdaw @ 1.06.2015 - 19:05)
У меня в личном кабинете пропал тарифный план, пишет данные не доступны, что бы это могло значить?

Начало месяца, списания абон платы идут, потому и висит скорее всего.
PMПисьмо на e-mail пользователю
Top
ping-85
Дата 1.06.2015 - 21:57
Цитировать сообщение




А оно тебе надо?
***

Профиль
Группа: Пользователи
Сообщений: 356
Пользователь №: 111459
Регистрация: 5.08.2012 - 21:12





to Buzzzzer
Цитата
Ой да ладна. Линуха все пугаются. Ваша тп тоже меня заставляла комп к ыптвплеером подключать, когда у меня половина каналов не але, когда я сказал, что я смотрю на сборке линуха с хбмс и я стопудов не причем

Ну здесь не поспоришь. Хотя какие то заявки наша тп мне кидает лично. Да к слову также пользуюсь сборкой XBMC + Tvheadend. А с РТК каждый раз открываешь что то новенькое, прям навивает старые добрые времена CorbinaTelekom и их поддержка с надоедливой музыкой и постоянными завтраками: "Мол завтра у вас все будет".

Это сообщение отредактировал ping-85 - 2.06.2015 - 07:37
PMПисьмо на e-mail пользователю
Top
дядя_Саша
Дата 1.06.2015 - 22:26
Цитировать сообщение




Unregistered












Я ничего в бизнесах не понимаю, но есть у меня предположение, что те, кто не первой свежести фильмы легально показывают нахаляву со вставками рекламы, зарабатывают больше, чем видеопрокатчики. Нет?
Top
Buzzzzer
Дата 2.06.2015 - 07:12
Цитировать сообщение




OMG!
*****

Профиль
Группа: Пользователи
Сообщений: 2407
Пользователь №: 53280
Регистрация: 16.06.2010 - 20:05





to ping-85
А как ты в tvh плейлист обновляешь?
Может есть какое решение удобное?
А то я уже устал. Либо руками лопатить, либо скриптом, но потом один фиг руками группы и ссылки на расписание и локальные иконки каналов. Уж больно муторно.
Сборка tvheadend последняя с гитхаба.
PMПисьмо на e-mail пользователю
Top
ExcStar
Дата 2.06.2015 - 09:04
Цитировать сообщение




ГТС
*****

Профиль
Группа: Пользователи
Сообщений: 2037
Пользователь №: 50520
Регистрация: 19.04.2010 - 13:09





Что за средневековье в Ростелекоме?
Вчера потребовалось подключить Белый IP адрес.
Позвонил по телефону, мне сказали, что это можно сделать только в офисе продаж.

Почему нельзя сделать это в личном кабинете или хотя бы по телефону?
PMПисьмо на e-mail пользователю
Top
ping-85
Дата 2.06.2015 - 09:41
Цитировать сообщение




А оно тебе надо?
***

Профиль
Группа: Пользователи
Сообщений: 356
Пользователь №: 111459
Регистрация: 5.08.2012 - 21:12





to Buzzzzer

Ну уменя не самая последняя сборка Build: 3.9.2827~g477feab~wheezy. Плейлист загоняю следующим скриптом.

Цитата
#!/usr/bin/env python
# -*- coding: utf-8 -*-
#===============================================================================
# m3u2hts.py - Generate TVHeadend 3.x channel/tag configuration files from
# IPTV M3U playlist
#
# © 2012 Gregor Rudolf
# Licensed under the MIT license:
# http://www.opensource.org/licenses/mit-license.php
#===============================================================================
from optparse import OptionParser
import codecs
import re
import os

try:
    import json
except ImportError:
    # old python? easy_install simplejson
    import simplejson as json

PROGNUM = re.compile(r"(\d+) - (.*)")  # #EXTINF:0,1 - SLO 1 -> #1 - num, 2 - ime

CHAN_NUMBERING_GENERATE = 0
CHAN_NUMBERING_DURATION = 1
CHAN_NUMBERING_NAMES = 2

channels = dict()
tags = dict()


def readm3u(infile, removenum, channumbering, inputcodec):
    """
    Read IPTV channels from .M3U file
    @param infile: input file
    @param removenum: try to remove channel numbers from names
    @param channumbering: how to get channel number
    @param inputcodec: encoding of input file
    """

    instream = codecs.open(infile, "Ur", encoding=inputcodec)
   
    urlRegex = re.compile(r"^((?P<schema>.+?)://@?)?(?P<host>.*?)(sad.gif?P<port>\d+?))?$")
    chancnt = 0
    tagcnt = 0
    chname = ''
    chtags = None
    chlanguage = None
    chnumber = None
    chxmltv = None
    chicon = None
    for line in instream.readlines():
        line = line.strip()
        if line.startswith("#EXTINF:"):
            #EXTINF:duration,channel number - channel name
            buff = line[8:].split(',')
            m = PROGNUM.search(buff[1])
            if removenum and m:
                chname = m.group(2)
            else:
                chname = buff[1]
            if m and channumbering == CHAN_NUMBERING_NAMES:
                chnumber = m.group(1)
            elif channumbering == CHAN_NUMBERING_DURATION:
                chnumber = buff[0]
        elif line.startswith('#EXTTV:'):
            #EXTTV:tag[,tag,tag...];language;XMLTV id[;icon URL]
            buff = line[7:].split(';')
            chtags = buff[0].split(',')
            for t in chtags:
                if not t in tags:
                    tagcnt += 1
                    tags[t] = {'num': tagcnt, 'name': t}
            chlanguage = buff[1]
            if chlanguage:
                if not chlanguage in tags:
                    tagcnt += 1
                    tags[chlanguage] = {'num': tagcnt, 'name': chlanguage}
                chtags.append(chlanguage)
            chxmltv = buff[2]
            chicon = buff[3] if len(buff) > 3 else None
        else:
            chgroup = re.search(urlRegex, line).groupdict()
            if not chgroup or not chgroup["schema"]:
                continue
            chancnt += 1
            if channumbering == CHAN_NUMBERING_GENERATE: chnumber = chancnt
            if chname in channels:
                print "%s already exists" % chname
                chname = chname + '.'
            channels[chname] = {'num': chancnt, 'number': chnumber, 'name': chname, 'tags': chtags, 'lang': chlanguage,
                                'ip': chgroup["host"], 'port': chgroup["port"], 'xmltv': chxmltv, 'icon': chicon}
            chname = ''
            chtags = None
            chlanguage = None
            chnumber = None
            chxmltv = None
            chicon = None


def writechannels():
    svcpath = 'iptvservices'
    chnpath = 'channels'
    xmltvpath = "epggrab/xmltv/channels"
    if not os.path.exists(svcpath):
        os.mkdir(svcpath)
    if not os.path.exists(chnpath):
        os.mkdir(chnpath)
    if not os.path.exists(xmltvpath):
        os.makedirs(xmltvpath)
    for channel in channels.values():
        #iptvservices/iptv_?
        jssvc = {'pmt': 0,
                'channelname': channel['name'],
                'port': channel['port'],
                'interface': 'eth2',
                'group': channel['ip'],
                'mapped': 1,
                'pcr': 0,
                'disabled': 0}
        writejson(os.path.join(svcpath, "iptv_" + str(channel['num'])), jssvc)

        #channels/?
        jschan = {'name': channel['name'],
                  'dvr_extra_time_pre': 0,
                  'dvr_extra_time_post': 0}
        if channel['number'] is not None:
            jschan['channel_number'] = channel['number']
        if channel['xmltv'] is not None:
            jschan['xmltv-channel'] = channel['xmltv']
        if channel['tags'] is not None:
            jschan['tags'] = list(tags[x]['num'] for x in channel['tags'])
        if channel['icon'] is not None:
            jschan['icon'] = channel['icon']
        writejson(os.path.join(chnpath, str(channel['num'])), jschan)

        #epg, if defined
        #epggrab/xmltv/channels/?
        if channel['xmltv']:
            xmlid = channel['xmltv']
            jsepg = {
                'name': xmlid,
                'channels': [channel['number']]
            }
            writejson(os.path.join(xmltvpath, xmlid), jsepg)

    path = 'channeltags'
    if not os.path.exists(path):
        os.mkdir(path)
    for tag in tags.values():
        #channeltags/?
        jstag = {'enabled': 1,
                'internal': 0,
                'titledIcon': 0,
                'name': tag['name'],
                'comment': '', 'icon': '',
                'id': tag['num']}
        writejson(os.path.join(path, str(tag['num'])), jstag)



def uuid():
    import uuid

    return uuid.uuid4().hex


def writechannels39():
    xmltvpath = "epggrab/xmltv/channels"
    if not os.path.exists(xmltvpath):
        os.makedirs(xmltvpath)

    tagpath = 'channel/tag'
    if not os.path.exists(tagpath):
        os.makedirs(tagpath)

    chnpath = 'channel/config'
    if not os.path.exists(chnpath):
        os.makedirs(chnpath)

    #channel/tag/UUID
    for tag in tags.values():
        tag['id'] = uuid()
        jstag = {'enabled': 1,
                'internal': 0,
                'titledIcon': 0,
                'name': tag['name'],
                'comment': '',
                'icon': ''}
        writejson(os.path.join(tagpath, tag['id']), jstag)

    #input/iptv
    path = os.path.join('input', 'iptv')
    if not os.path.exists(path):
        os.makedirs(path)
    #input/iptv/config
    writejson(os.path.join(path, 'config'), {
        'uuid': uuid(),
        'skipinitscan': 1,
        'autodiscovery': 0
    })
    #input/iptv/networks/uuid()
    path = os.path.join(path, 'networks', uuid())
    if not os.path.exists(path):
        os.makedirs(path)
    writejson(os.path.join(path, 'config'), {
        'networkname': 'IPTV network',  # Network name
        'skipinitscan': 1,  # Skip initial scan
        'autodiscovery': 0, # Network discovery
        'idlescan': 0,      # Idle scan
        'max_streams': 2,  # Max input streams
        'max_bandwidth': 0, # Max bandwidth (Kbps)
        'max_timeout': 10  # Max timeout (seconds)
    })
    #input/iptv/networks/uuid()/muxes
    path = os.path.join(path, 'muxes')
    if not os.path.exists(path):
        os.mkdir(path)
    #one mux and service for each channel
    for channel in channels.values():
        muxid = uuid()
        muxpath = os.path.join(path, muxid)
        if not os.path.exists(muxpath):
            os.mkdir(muxpath)
        jsmux = {
            'iptv_url': "udp://@%s:%s" % (channel['ip'], channel['port']),
            'iptv_interface': 'eth2',
            'iptv_atsc': 0,
            'iptv_svcname': channel['name'],
            'iptv_muxname': channel['name'],
            'iptv_sname': channel['name'],
            'enabled': 1,
            'scan_result': 2  # mark scan result (1 - ok, 2 - failed)
        }
        #input/iptv/networks/uuid()/muxes/uuid()/config file
        writejson(os.path.join(muxpath, 'config'), jsmux)
        #input/iptv/networks/uuid()/muxes/uuid()/services/uuid()
        svcpath = os.path.join(muxpath, 'services')
        if not os.path.exists(svcpath):
            os.mkdir(svcpath)
        #TODO: create empty service with id 1 or don't
        if False:
            svcid = uuid()
            jssvc = {
                'sid': 1,  # guess service id
                'svcname': channel['name'],
                'name': channel['name'],
                'dvb_servicetype': 1,
                'enabled': 1
            }
            writejson(os.path.join(svcpath, svcid), jssvc)
        else:
            svcid = None

        #channel/config
        chanid = uuid()
        jschan = {
            'name': channel['name'],
            'dvr_pre_time': 0,
            'dvr_pst_time': 0,
            'services': [svcid]
        }
        if channel['number'] is not None:
            jschan['number'] = int(channel['number'])
        if channel['tags'] is not None:
            jschan['tags'] = list(tags[x]['id'] for x in channel['tags'])
        if channel['icon'] is not None:
            jschan['icon'] = channel['icon']
        writejson(os.path.join(chnpath, chanid), jschan)

        #epg
        #epggrab/xmltv/channels/#
        if channel['xmltv'] is not None:
            xmlid = channel['xmltv']
        else:
            xmlid = channel['name']
        jsepg = {
            'name': xmlid,
            'channels': [chanid]
        }
        writejson(os.path.join(xmltvpath, chanid), jsepg)


def writejson(filename, obj):
    """
    Export obj to filename in JSON format
    @param filename: output file
    @param obj: object to export
    """
    outstream = codecs.open(filename, "w", encoding='utf-8')
    json.dump(obj, outstream, indent=4, ensure_ascii=False)
    outstream.close()


def main():
    par = OptionParser(usage="%prog [options] inputfile",
                      description="Generate TVHeadend 3.x channel/tag configuration files from IPTV M3U playlist")
    par.add_option('-r', '--removenum', action='store_true', help=u'remove program numbers from names')
    par.add_option('-n', '--numbering', type='int', default=0,
                  help=u'program numbers are generated(0), determined from duration(1) or extracted from program names(2)')
    par.add_option('-c', '--codec', action='store', dest='codec', default='cp1250',
                  help=u'input file encoding [default: %default]')
    par.add_option('--newformat', action='store_true',
                  help=u'generate TVHeadend 3.9+ compatible configuration files (experimental)')
    opt, args = par.parse_args()
    if len(args) == 1:
        readm3u(args[0], opt.removenum, opt.numbering, opt.codec)
        writechannels39() if opt.newformat else writechannels()
        print("OK")
    else:
        par.print_help()


if __name__ == '__main__':
    main()


Далее все зависит от версии tvheadend. Для моей мне приходится дополнительно просканировать все потоки. С EPG все просто ни каких лишних телодвижений, не понб где я его качал но там тоже скрипт на bash который должен лежать в /usr/bin/tv_grab_ru

Цитата
#!/bin/bash
dflag=
vflag=
cflag=
if (( $# < 1 ))
then
#  cat ~/.xmltv/tv_grab_file.xmltv
#  cat ~/.xmltv/*.xmltv
  wget -qO - http://www.teleguide.info/download/new3/xmltv.xml.gz | gunzip
  exit 0
fi

for arg
do
    delim=""
    case "$arg" in
    #translate --gnu-long-options to -g (short options)
      --description) args="${args}-d ";;
      --version) args="${args}-v ";;
      --capabilities) args="${args}-c ";;
      #pass through anything else
      *) [[ "${arg:0:1}" == "-" ]] || delim="\""
          args="${args}${delim}${arg}${delim} ";;
    esac
done

#Reset the positional parameters to the short options
eval set -- $args

while getopts "dvc" option
do
    case $option in
        d)  dflag=1;;
        v)  vflag=1;;
        c)  cflag=1;;
        \?) printf "unknown option: -%s\n" $OPTARG
            printf "Usage: %s: [--description] [--version] [--capabilities] \n" $(basename $0)
            exit 2
            ;;
    esac >&2
done

if [ "$dflag" ]
then
  printf "tv_grag_ru Grab TV listings for Russian channels\n"
fi
if [ "$vflag" ]
then
  printf "0.1\n"
fi
if [ "$cflag" ]
then
  printf "baseline\n"
fi

exit 0


ну как то во так.
PMПисьмо на e-mail пользователю
Top
Buzzzzer
Дата 2.06.2015 - 10:11
Цитировать сообщение




OMG!
*****

Профиль
Группа: Пользователи
Сообщений: 2407
Пользователь №: 53280
Регистрация: 16.06.2010 - 20:05





ping-85
Ну я точно так же и делаю smile.gif и версия такая же (Build: 3.9.2827~g477feab~trusty)
Правда не все EPG каналов грабятся, пока не переназначишь.
иконки каналов и группы делить приходится заново на Основые\Познавательные\Музон\Шлак\Детские\etc заново, что напрягает немного.
С иконками я вроде решил пропатчив скрипт и назвав pngшки так же как каналы, а вот с группами фигово. из за них в cron уже не пихнуть обновлятор листа unsure.gif ну или дописывать скрипт нужно...

Это сообщение отредактировал Buzzzzer - 2.06.2015 - 10:12
PMПисьмо на e-mail пользователю
Top
дядя_Саша
Дата 2.06.2015 - 11:01
Цитировать сообщение




Unregistered












Писать целую программу, чтобы телевизор посмотреть... Вы не страдаете извращениями, вы ими наслаждаетесь.
Top
Buzzzzer
Дата 2.06.2015 - 11:17
Цитировать сообщение




OMG!
*****

Профиль
Группа: Пользователи
Сообщений: 2407
Пользователь №: 53280
Регистрация: 16.06.2010 - 20:05





Цитата (дядя_Саша @ 2.06.2015 - 12:01)
Писать целую программу, чтобы телевизор посмотреть... Вы не страдаете извращениями, вы ими наслаждаетесь.

Это всё же лучше, чем за деньги то вместо переключения канала втыкать в рекламу говнотеки с древнючим, как жопа мамонта, контентом за конский ценник...Или зависоны ловить...

Это не только телик. Это еще и фототека, радио, музыка, качалка и сразу просмотр торрентов\youtube\и тд, игрулек типа сеги и денди, домашнее файлохранилище и тд и тп.
Вообщем всё в одном.

Это сообщение отредактировал Buzzzzer - 2.06.2015 - 11:21
PMПисьмо на e-mail пользователю
Top
ping-85
Дата 2.06.2015 - 11:18
Цитировать сообщение




А оно тебе надо?
***

Профиль
Группа: Пользователи
Сообщений: 356
Пользователь №: 111459
Регистрация: 5.08.2012 - 21:12





Зато удобно. Все есть, можно и писать по раписанию и красивая вебморда.
PMПисьмо на e-mail пользователю
Top
дядя_Саша
Дата 2.06.2015 - 13:07
Цитировать сообщение




Unregistered












Я одно понимаю - ваши линухи - система исключительно для программистов. Любое действие в ней начинается с написания новой программы.
Top

Опции темы Страницы: (1372) « Первая ... 1290 1291 1292 1293 ... Последняя » Закрытая темаСоздание новой темыСоздание опроса

 



[ Время генерации скрипта: 0.1177 ]   [ Использовано запросов: 15 ]   [ GZIP включён ]



Яндекс.Метрика

Правила Ярпортала (включая политику обработки персональных данных)

Все вопросы: yaroslavl@bk.ru