Advertisement
Guest User

Untitled

a guest
Nov 3rd, 2014
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.97 KB | None | 0 0
  1. #!/bin/python
  2. import json
  3. import urllib2
  4. import time
  5. import os
  6. import string
  7. import subprocess
  8. import re
  9. def check_chan():
  10.     url=urllib2.urlopen("http://ip:9981/api/status/subscriptions")
  11.     json_string=url.read()
  12.     data = json.loads(json_string)
  13.     entries = data['entries']
  14.     if entries:
  15.         for entry in entries:
  16.             if entry['state']!="Running":
  17.                 #if entry['service']=="virbr1/239.0.0.2":
  18.                                 if entry.get('channel'):
  19.                     print "Requesting "+entry['channel']
  20.                     print entry['state']
  21.                 #if entry['state']=="Testing":
  22.                     if entry['channel'] == "TN":
  23.                         start_chan("tn")
  24.                     elif entry['channel'] == "C5N":
  25.                         start_chan("c5n")
  26.                     elif entry['channel'] == "El Trece":
  27.                         start_chan("canal13")
  28.                     elif entry['channel'] == "360TV":
  29.                         start_chan("360tv")
  30.                     elif entry['channel'] == "La100":
  31.                         start_chan("la100")
  32.                     elif entry['channel'] == "TV Publica":
  33.                         start_chan("tvpublica")
  34.                     elif entry['channel'] == "DeporTV":
  35.                                             start_chan("deportv")
  36.                     elif entry['channel'] == "Fox Sports":
  37.                                             start_chan("foxsports")
  38.                     elif entry['channel'] == "MitreHD":
  39.                                         start_chan("mitrehd")
  40.                     elif entry['channel'] == "ESPN+ LA":
  41.                                             start_chan("espnmas")
  42.                     elif entry['channel'] == "LaRed":
  43.                                             start_chan("lared")
  44.                     elif entry['channel'] == "Radio Mitre":
  45.                                             start_chan("radiomitre")
  46.                     elif entry['channel'] == "Telefe":
  47.                                             start_chan("telefe")
  48.                     elif entry['channel'] == "Canal9":
  49.                         print "Start Canal9"
  50.                                             start_chan("canal9")
  51.                     elif entry['channel'] == "TyC Sports":
  52.                                             start_chan("tycsports")
  53.                     elif entry['channel'] == "ESPN LA":
  54.                                             start_chan("espn")
  55.                     elif entry['channel'] == "America":
  56.                                             start_chan("america2")
  57.  
  58. def start_chan(chan):
  59.     if os.path.isfile('/var/lock/'+chan):
  60.             print chan+' is starting'
  61.         else:
  62.        os.popen('service '+chan+' start')
  63.            os.popen('touch /var/lock/'+chan)
  64.     #time.sleep(1)
  65. def stop_chan(chan):
  66.         if os.path.isfile('/var/lock/'+chan):
  67.             os.popen('service '+chan+' stop &')
  68.             os.popen('rm -f /var/lock/'+chan)  
  69. def garbage_collect():
  70.     process = subprocess.Popen("ps ax | grep 239.0.0.2| grep -v grep | awk -F\"239.0.0.2:\" '{print $2}' | awk -F\? '{print $1}' | grep -v print",
  71.                                  shell=True,
  72.                                  stdout=subprocess.PIPE,
  73.                                )
  74.     stdout_list = process.communicate()[0]
  75.     for line in stdout_list.split('\n'):
  76.         port = line
  77.         channelname="test"
  78.         found="NO"
  79.         service="test"
  80.             if port:
  81.                     if  port == "1234":
  82.                 del channelname
  83.                             channelname="TN"
  84.                     elif port == "1736":
  85.                 del channelname
  86.                             channelname="C5N"
  87.                     elif port == "3360":
  88.                 del channelname
  89.                             channelname="360TV"
  90.                     elif port == "2334":
  91.                 del channelname
  92.                             channelname="La100"
  93.                     elif port == "1910":
  94.                 del channelname
  95.                             channelname="LaRed"
  96.                     elif port == "1235":
  97.                 del channelname
  98.                             channelname="El Trece"
  99.                     elif port == "1238":
  100.                 del channelname
  101.                             channelname="TV Publica"
  102.                     elif port == "3006":
  103.                 del channelname
  104.                             channelname="DeporTV"
  105.                     elif port == "3005":
  106.                 del channelname
  107.                             channelname="ESPN+ LA"
  108.                     elif port == "1239":
  109.                 del channelname
  110.                             channelname="Fox Sports"
  111.                     elif port == "1635":
  112.                 del channelname
  113.                             channelname="MitreHD"
  114.                     elif port == "2234":
  115.                 del channelname
  116.                             channelname="Radio Mitre"
  117.                     elif port == "1241":
  118.                 del channelname
  119.                             channelname="Telefe"
  120.                     elif port == "1260":
  121.                 del channelname
  122.                             channelname="Canal9"
  123.                     elif port == "3000":
  124.                 del channelname
  125.                             channelname="ESPN LA"
  126.                     elif port == "1240":
  127.                 del channelname
  128.                             channelname="TyC Sports"
  129.                     elif port == "1222":
  130.                 del channelname
  131.                             channelname="America"
  132.         #print channelname+" esta ejecutandose"
  133.             url=urllib2.urlopen("http://192.168.0.9:9981/api/status/subscriptions")
  134.             json_string=url.read()
  135.             data = json.loads(json_string)
  136.             entries = data['entries']
  137.             if entries:
  138.                     for entry in entries:
  139.                 #print "Evaluando "+entry['channel']
  140.                 #print entry
  141.                                 if entry.get('channel'):
  142.                                 if entry['channel']==channelname:
  143.                                         found="SI"
  144.                             #print "pero "+channelname+" se esta mirando actualmente "+entry['channel']
  145.                     #else:
  146.                         #if channelname != "test":
  147.                         #print channelname+" no se esta mirando"
  148.         if channelname == "TN":
  149.                     service="tn"
  150.             elif channelname == "El Trece":
  151.                 service="canal13"
  152.             elif channelname == "360TV":
  153.                     service="360tv"
  154.             elif channelname == "C5N":
  155.                     service="c5n"
  156.             elif channelname == "TV Publica":
  157.                     service="tvpublica"
  158.         elif channelname == "Fox Sports":
  159.                 service="foxsports"
  160.             elif channelname == "MitreHD":
  161.                 service="mitrehd"
  162.             elif channelname == "Radio Mitre":
  163.                 service="radiomitre"
  164.             elif channelname == "Telefe":
  165.                     service="telefe"
  166.             elif channelname == "Canal9":
  167.                 service="canal9"
  168.             elif channelname == "LaRed":
  169.                 service="lared"
  170.             elif channelname == "La100":
  171.                 service="la100"
  172.             elif channelname == "DeporTV":
  173.                 service="deportv"
  174.             elif channelname == "ESPN+ LA":
  175.                 service="espnmas"
  176.             elif channelname == "ESPN LA":
  177.                 service="espn"
  178.             elif channelname == "TyC Sports":
  179.                 service="tycsports"
  180.             elif channelname == "America":
  181.                 service="america2"
  182.             if found !="SI":
  183.             if service != "test":
  184.                         #print "service "+service+" stop"
  185.                 stop_chan(service)
  186.  
  187. def main():
  188.     while True:
  189.         garbage_collect()
  190.         check_chan()
  191.         time.sleep(1)
  192. if __name__ == "__main__":
  193.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement