Advertisement
Guest User

imagenio.py Busca canales MODIFICADO

a guest
Oct 16th, 2013
5,664
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.25 KB | None | 0 0
  1. import socket
  2. import struct
  3. import re
  4. import pprint
  5. import sys
  6. import binascii
  7. import datetime
  8. import itertools
  9.  
  10.  
  11. if len(sys.argv) < 2:
  12. print "USO: imagenio.py TUPROVINCIA"
  13. print "Donde tu provincia es el numero que corresponda de los siguientes:"
  14. print "24. Galicia"
  15. print "19. Madrid"
  16. print "1. Cataluna"
  17. print "15. Andalucia"
  18. print "34. Aragon"
  19. print "13. Asturias"
  20. print "29. Cantabria"
  21. print "38. Castilla la Mancha"
  22. print "4. Castilla y Leon"
  23. print "6. Comunidad Valenciana"
  24. print "32. Extremadura"
  25. print "10. Islas Baleares"
  26. print "37. Islas Canarias"
  27. print "31. La Rioja"
  28. print "12. Murcia"
  29. print "35. Navarra"
  30. print "36. Pais Vasco"
  31. sys.exit(1)
  32.  
  33. provincia=sys.argv[1]
  34.  
  35. ###################################################
  36. MCAST_GRP = '239.0.2.129'
  37. ###################################################
  38.  
  39. MCAST_PORT = 3937
  40. principio=0
  41. final=0
  42. ipprovincia=0
  43.  
  44. print "Buscando IP del servidor Multicast de MovistarTV..."
  45. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
  46.  
  47. sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  48. sock.settimeout(3)
  49. sock.bind(('', MCAST_PORT))
  50. mreq = struct.pack("=4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
  51.  
  52. sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
  53.  
  54. while True:
  55.  
  56. d = sock.recv(8096000)
  57.  
  58. regexp = re.compile("DEM_" + str(provincia) + "\..*?Address\=\\\"(.*?)\\\".*?",re.DOTALL)
  59. m = regexp.findall(d)
  60.  
  61. if(re.findall("\<\?xml", d)):
  62. principio=1
  63.  
  64.  
  65. if(principio==1):
  66. if(re.findall("</ServiceDiscovery>",d)):
  67. final=1
  68.  
  69. if(final==1):
  70. if m:
  71. print m[0]
  72. ipprovincia = m[0]
  73. print "IP Encontrada!"
  74. break
  75.  
  76. #print "final"
  77.  
  78.  
  79.  
  80.  
  81. principio=0
  82. final=0
  83.  
  84. #A PARTIR DE AQUI MEJOR NO TOQUES NADA SI NO SABES
  85.  
  86. ###################################################
  87. MCAST_GRP = ipprovincia
  88. ###################################################
  89.  
  90. MCAST_PORT = 3937
  91.  
  92. print "Obteniendo datos del servidor Multicast de MovistarTV..."
  93. sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM, socket.IPPROTO_UDP)
  94.  
  95. sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  96. sock.settimeout(3)
  97. sock.bind(('', MCAST_PORT))
  98. mreq = struct.pack("=4sl", socket.inet_aton(MCAST_GRP), socket.INADDR_ANY)
  99.  
  100. sock.setsockopt(socket.IPPROTO_IP, socket.IP_ADD_MEMBERSHIP, mreq)
  101.  
  102.  
  103. lista=[]
  104.  
  105. while True:
  106.  
  107. d = sock.recv(8096000)
  108.  
  109. regexp = re.compile("Port\=\\\"(.*?)\\\".*?Address\=\\\"(.*?)\\\" \/\>.*?imSer\/(.*?)\.jpg.*?Language\=\\\"ENG\\\"\>(.*?)\<\/Name\>",re.DOTALL)
  110. m = regexp.findall(d)
  111.  
  112. if m:
  113. lista.append(m)
  114.  
  115.  
  116. if(re.findall("\<BroadcastDiscovery", d)):
  117. principio=1
  118.  
  119.  
  120. if(principio==1):
  121. if(re.findall("\<\/BroadcastDiscovery",d)):
  122. final=1
  123.  
  124. if(final==1):
  125. lista = list(itertools.chain(*lista))
  126. lista.sort()
  127. print "Generando archivo..."
  128. now = datetime.datetime.now()
  129. f = open('MovistarTV_canales_' + str(now.strftime("%Y-%m-%d__%H_%M_%S")) + ".m3u",'a')
  130. f.write("#EXTM3U\n")
  131. print "Guardando canales en archivo..."
  132. for i in range(0,len(lista)):
  133. f.write("#EXTINF:-1," + lista[i][3] + ' [' + lista[i][2] + ']\n')
  134. f.write("rtp://@" + lista[i][1] + ":" + str(lista[i][0]) + '\n')
  135. print "Terminado!"
  136. sys.exit(0)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement