Página 1 de 1

Conector MEGA funcionando

Publicado: 29 Mar 2013, 22:41
por buster25
Tengo resuelto como ver videos en streaming desde Mega y funciona, :D :D :D :D :D , es supersencillo y el streaming es rapidísmo, estoy intentando crear el canal para pelisalacarta de la página http://www.mega-spain.com y me he atascado con el login. :oops: :oops:

Como no se ni papa de phyton me dedico a prueba/error. :mrgreen:

Hasta ahora tengo claro que el esquema del login es "casi" identico al de mocosoftx y digo casi identico porque no me funciona:

En Mocosoftx es http://www.mocosoftx.com/foro/index.php
En mega-spain es http://www.mega-spain.com/index.php

En Mocosoftx es http://mocosoftx.com/foro/login/
En mega-spain es http://www.mega-spain.com/index.php?action=login

En Mocosoftx es <form action="http://mocosoftx.com/foro/login2/" name="frmLogin" id="frmLogin" method="post" accept-charset="ISO-8859-1" onsubmit="hashLoginPassword(this, '206ad0604b721a81adcb169d85a919a0');">

En mega-spain es <form action="http://www.mega-spain.com/index.php?action=login2" name="frmLogin" id="frmLogin" method="post" accept-charset="ISO-8859-1" onsubmit="hashLoginPassword(this, 'd05f336165fb113df387981c9b6211d0');">


Lo que estoy haciendo es que he "machacado" el canal de mocosoftx para que me coja el usuario y el login de la misma configuracion de pelisalacarta, os paso el código a ver que puede estar mal, resaltando donde hay cambios:

# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Canal para mocosoftx
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
import urlparse,urllib2,urllib,re
import os
import sys

from core import logger
from core import config
from core import scrapertools
from core.item import Item
from servers import servertools

__channel__ = "mocosoftx"
__category__ = "F"
__type__ = "generic"
__title__ = "MocosoftX"
__language__ = "ES"
__adult__ = "true"

DEBUG = config.get_setting("debug")

MAIN_HEADERS = []

#######################################################
#MAIN_HEADERS.append( ["Host","mocosoftx.com"] )
MAIN_HEADERS.append( ["Host","mega-spain.com"] )
#######################################################


MAIN_HEADERS.append( ["User-Agent","Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:8.0) Gecko/20100101 Firefox/8.0"] )
MAIN_HEADERS.append( ["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"] )
MAIN_HEADERS.append( ["Accept-Language","es-es,es;q=0.8,en-us;q=0.5,en;q=0.3"] )
MAIN_HEADERS.append( ["Accept-Charset","ISO-8859-1,utf-8;q=0.7,*;q=0.7"] )
MAIN_HEADERS.append( ["Connection","keep-alive"] )

# Login:
# <form action="http://mocosoftx.com/foro/login2/" method="post" accept-charset="ISO-8859-1" onsubmit="hashLoginPassword(this, '3e468fdsab5d9');" >
# pst: user=blablabla&passwrd=&cookielength=-1&hash_passwrd=78e88DSe408508d22f
# doForm.hash_passwrd.value = hex_sha1(hex_sha1(doForm.user.value.php_to8bit().php_strtolower() + doForm.passwrd.value.php_to8bit()) + cur_session_id);

def isGeneric():
return True

def login():

# Averigua el id de sesión
#################################################################################
#data = scrapertools.cache_page("http://www.mocosoftx.com/foro/index.php")
data = scrapertools.cache_page("http://www.mega-spain.com/index.php")
#################################################################################


cur_session_id = scrapertools.get_match(data,'form action="[^"]+" method="post" accept-charset="ISO-8859-1" onsubmit="hashLoginPassword\(this, \'([a-z0-9]+)\'')
logger.info("cur_session_id="+cur_session_id)

# Calcula el hash del password
LOGIN = config.get_setting("mocosoftxuser")
PASSWORD = config.get_setting("mocosoftxpassword")
logger.info("LOGIN="+LOGIN)
logger.info("PASSWORD="+PASSWORD)

#doForm.hash_passwrd.value = hex_sha1(hex_sha1(doForm.user.value.php_to8bit().php_strtolower() + doForm.passwrd.value.php_to8bit()) + cur_session_id);
hash_passwrd = scrapertools.get_sha1( scrapertools.get_sha1( LOGIN.lower() + PASSWORD.lower() ) + cur_session_id)
logger.info("hash_passwrd="+hash_passwrd)

# Hace el submit del login
post = "user="+LOGIN+"&passwrd=&cookielength=-1&hash_passwrd="+hash_passwrd
logger.info("post="+post)

######################################################################################################################
#data = scrapertools.cache_page("http://mocosoftx.com/foro/login2/" , post=post, headers=MAIN_HEADERS)
data = scrapertools.cache_page("http://www.mega-spain.com/index.php?action=login2" , post=post, headers=MAIN_HEADERS)
######################################################################################################################

return True

def mainlist(item):
logger.info("[mocosoftx.py] mainlist")
itemlist = []

if config.get_setting("mocosoftxaccount")!="true":
itemlist.append( Item( channel=__channel__ , title="Habilita tu cuenta en la configuración..." , action="" , url="" , folder=False ) )
else:
if login():
######################################################
#item.url = "http://mocosoftx.com/foro/forum/"
item.url = "http://www.mega-spain.com/index.php"
######################################################
return foro(item)
else:
itemlist.append( Item( channel=__channel__ , title="Cuenta incorrecta, revisa la configuración..." , action="" , url="" , folder=False ) )

return itemlist

Re: Conector MEGA funcionando

Publicado: 30 Mar 2013, 02:10
por jesus
Pues así a ojo no le veo ningún fallo...

¿Has comprobado con el Firebug a ver si estás enviando las mismas cabeceras?

La clave está ahí. En el modulo core.scrapertools de pelisalacarta puedes activar un nivel de log adicional que te vendrá bien para comparar las cabeceras que envías desde pelisalacarta y las que envías desde el navegador:

Código: Seleccionar todo

# True - Muestra las cabeceras HTTP en el log
# False - No las muestra
DEBUG_LEVEL = False

Re: Conector MEGA funcionando

Publicado: 30 Mar 2013, 09:52
por buster25
Anoche estuve viendo de un tirón el episodio piloto de Star Trek Enterprise, todo perfecto y sin cortes, :D :D lo único que hago es generar un fichero strm con el link de mega convertido, así que es una pena que siga atascado con el login :oops: :oops: :oops: :oops:

Pues lo miro, pero no sé muy bien por donde tirar. Esta es la cabecera de la página de login
"http://www.mega-spain.com/index.php?action=login":

Cache-Control private
Connection close
Content-Encoding gzip
Content-Length 3939
Content-Type text/html; charset=ISO-8859-1
Date Sat, 30 Mar 2013 08:34:48 GMT
Expires Mon, 26 Jul 1997 05:00:00 GMT
Last-Modified Sat, 30 Mar 2013 08:34:48 GMT
Pragma no-cache
Server Apache
Vary Accept-Encoding
X-Powered-By PHP/5.3.6, PleskLin
Encabezados de solicitud ver fuente
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Connection keep-alive
Cookie PHPSESSID=6jan9uf1kj6bhopue7317k7mc3
DNT 1
Host http://www.mega-spain.com
If-Modified-Since Sat, 30 Mar 2013 08:17:28 GMT
Referer http://www.mega-spain.com/index.php
User-Agent Mozilla/5.0 (Windows NT 6.2; rv:18.0) Gecko/20100101 Firefox/18.0



Esta es la cabecera que he construido en el canal:

MAIN_HEADERS.append( ["Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"] )
MAIN_HEADERS.append( ["Accept-Encoding","gzip, deflate"] )
MAIN_HEADERS.append( ["Accept-Language","es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3"] )
MAIN_HEADERS.append( ["Connection","keep-alive"] )
MAIN_HEADERS.append( ["DNT","1"] )
MAIN_HEADERS.append( ["Host","www.mega-spain.com"] )
MAIN_HEADERS.append( ["Referer","http://www.mega-spain.com/index.php"] )
MAIN_HEADERS.append( ["User-Agent","Mozilla/5.0 (Windows NT 6.2; rv:18.0) Gecko/20100101 Firefox/18.0"] )
MAIN_HEADERS.append( ["Accept-Charset","ISO-8859-1"] )

y esta es la respuesta del log:

09:38:46 T:1620 NOTICE: [scrapertools.py] cachePage url=http://www.mega-spain.com/index.php?action=login
09:38:46 T:1620 NOTICE: [scrapertools.py] MODO_CACHE=2 (no cachear)
09:38:46 T:1620 NOTICE: [scrapertools.py] downloadpage
09:38:46 T:1620 NOTICE: [scrapertools.py] url=http://www.mega-spain.com/index.php?action=login
09:38:46 T:1620 NOTICE: [scrapertools.py] post=None
09:38:46 T:1620 NOTICE: [scrapertools.py] ficherocookies=C:\Users\XXXOCULTOxxx\AppData\Roaming\XBMC\userdata\addon_data\plugin.video.pelisalacarta\cookies.dat
09:38:46 T:1620 NOTICE: [scrapertools.py] Importando cookielib
09:38:46 T:1620 NOTICE: [scrapertools.py] cookielib disponible
09:38:46 T:1620 NOTICE: [scrapertools.py] Hay cookies
09:38:46 T:1620 NOTICE: [scrapertools.py] Leyendo fichero cookies
09:38:46 T:1620 NOTICE: [scrapertools.py] opener usando urllib2 (cookielib)
09:38:46 T:1620 NOTICE: [scrapertools.py] petición GET
09:38:46 T:1620 NOTICE: [scrapertools.py] --------------------------- /////////////¿ NO LEE EL HOST ///////////// :?: :?:
09:38:46 T:1620 NOTICE: [scrapertools.py] header User-Agent=Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; es-ES; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12 ///////////////////CAMBIA CON EL DEL CANAL//////////////////////// :?: :?:
09:38:46 T:1620 NOTICE: [scrapertools.py] ---------------------------
09:38:46 T:1620 NOTICE: [scrapertools.py] Respuesta
09:38:46 T:1620 NOTICE: [scrapertools.py] ---------------------------
09:38:46 T:1620 NOTICE: [scrapertools.py] content-length=14385
09:38:46 T:1620 NOTICE: [scrapertools.py] x-powered-by=PHP/5.3.6, PleskLin
09:38:46 T:1620 NOTICE: [scrapertools.py] set-cookie=PHPSESSID=m9tqcim0ne2duq72fpel0t8ef0; path=/ ;///////////¿ Y ESTA COOKIE ? :?: :?:
09:38:46 T:1620 NOTICE: [scrapertools.py] expires=Mon, 26 Jul 1997 05:00:00 GMT
09:38:46 T:1620 NOTICE: [scrapertools.py] server=Apache
09:38:46 T:1620 NOTICE: [scrapertools.py] last-modified=Sat, 30 Mar 2013 08:38:48 GMT
09:38:46 T:1620 NOTICE: [scrapertools.py] connection=close ////////////////////////////SE CIERRA////////////// :( :(

luego.... más errores:

09:38:46 T:1620 NOTICE: [scrapertools.py] pragma=no-cache
09:38:46 T:1620 NOTICE: [scrapertools.py] cache-control=private
09:38:46 T:1620 NOTICE: [scrapertools.py] date=Sat, 30 Mar 2013 08:38:48 GMT
09:38:46 T:1620 NOTICE: [scrapertools.py] content-type=text/html; charset=ISO-8859-1
09:38:46 T:1620 NOTICE: [scrapertools.py] ---------------------------
09:38:46 T:1620 NOTICE: [scrapertools.py] Descargado en 1 segundos
09:38:46 T:1620 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
- NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
Error Type: <type 'exceptions.IndexError'>
Error Contents: list index out of range
Traceback (most recent call last):
File "C:\Users\XXXOCULTOXXX\AppData\Roaming\XBMC\addons\plugin.video.pelisalacarta\default.py", line 27, in <module>
launcher.run()
File "C:\Users\XXXOCULTOXXX\AppData\Roaming\XBMC\addons\plugin.video.pelisalacarta\platformcode\xbmc\launcher.py", line 298, in run
exec "itemlist = channel."+action+"(item)"
File "<string>", line 1, in <module>
File "C:\Users\XXXOCULTOXXX\AppData\Roaming\XBMC\addons\plugin.video.pelisalacarta\pelisalacarta\channels\mocosoftx.py", line 105, in mainlist
if login():
File "C:\Users\XXXOCULTOXXX\AppData\Roaming\XBMC\addons\plugin.video.pelisalacarta\pelisalacarta\channels\mocosoftx.py", line 74, in login
cur_session_id = scrapertools.get_match(data,'form action="[^"]+" method="post" accept-charset="ISO-8859-1" onsubmit="hashLoginPassword\(this, \'([a-z0-9]+)\'')
File "C:\Users\XXXOCULTOXXX\AppData\Roaming\XBMC\addons\plugin.video.pelisalacarta\core\scrapertools.py", line 719, in get_match
return matches[index]
IndexError: list index out of range
-->End of Python script error report<--



¿ Habría que cambiar la cookie en el archivo dat ?. Esta es la única información que da Firebug sobe la cookie:

PHPSESSID=6jan9uf1kj6bhopue7317k7mc3; path=/; domain=www.mega-spain.com Expira: Sesión

Re: Conector MEGA funcionando

Publicado: 11 Abr 2013, 07:18
por buster25
Bueno, a la vista de que no consigo avanzar, la verdad es que llevo más de quince días dale que te pego, añado un poco más de información, por si alguien puede ayudarme..., la verdad es que estaría muy bien saber como funciona este login, ya que la misma estructura está en páginas como http://www.mega-spain.com/ ; http://mega-foro.com/ o http://www.nubedepolvo.com/ que ofrecen una gran variedad de pelis, series o documentales.

Estas cabeceras están sacadas con Tamper Data desde Firefox:

8:51:39.612[891ms][total 891ms] Estado: 302[Found]
POST http://www.mega-spain.com/index.php?action=login2

Indicadores cargados[LOAD_DOCUMENT_URI LOAD_INITIAL_DOCUMENT_URI ] Tamaño[27] Tipo Mime[text/html]

Cabeceras pedidas:
Host[www.mega-spain.com]
User-Agent[Mozilla/5.0 (Windows NT 5.1; rv:19.0) Gecko/20100101 Firefox/19.0]
Accept[text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8]
Accept-Language[es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3]
Accept-Encoding[gzip, deflate]
DNT[1]
Referer[http://www.mega-spain.com/index.php?PHP ... tion=login]
Cookie[PHPSESSID=feek4908bqug9frra0c0ajmh11]
Connection[keep-alive]

Post Data:
user[xOCULTOxx]
passwrd[]
cookielength[60]
hash_passwrd[0a5ba0cce16OCULTO1d8f62d525772d5ce458de]


Cabeceras recibidas:
Date[Wed, 10 Apr 2013 06:48:12 GMT]
Server[Apache]
X-Powered-By[PHP/5.3.6, PleskLin]
Expires[Thu, 19 Nov 1981 08:52:00 GMT]
Cache-Control[private]
Pragma[no-cache]
Set-
Cookie[SMFCookie217=a%3A4%3A%7Bi%3A0%3Bs%3A4%3A%225041%22%3Bi%3A1%3Bs%3A40%3A%22bac936OCULTO7479af43fd5448367caf50f1%22%3Bi%3A2%3Bi%3A1365580092%3Bi%3A3%3Bi%3A0%3B%7D; expires=Wed, 10-Apr-2013 07:48:12 GMT; path=/
PHPSESSID=ucul3e58paugj5o7eki0etnkr1; path=/]
Location[http://www.mega-spain.com/index.php?act ... r=XOCULTOX]
Content-Encoding[gzip]
Vary[Accept-Encoding]
Content-Length[27]
Connection[close]
Content-Type[text/html]


Además y tal y como dije en el primer post, utilizo la misma estructura de login de mocosoftx, la verdad es que estas dos páginas hacen el login "aparentemente" igual, las dos utilizan cifrado sha1 para generar el hash, -de echo el script es el mismo, los podeis ver aqui http://mocosoftx.com/foro/Themes/defaul ... ts/sha1.js y aquí http://www.mega-spain.com/Themes/defaul ... s/sha1.js-.

Lo único que tengo dudas es,

-primero, por qué en el py de mocosoftx se calcula el hash de esta forma:

Hay una línea de código acotada:

doForm.hash_passwrd.value = hex_sha1(hex_sha1(doForm.user.value.php_to8bit().php_strtolower() + doForm.passwrd.value.php_to8bit()) + cur_session_id);

para luego sacarlo así:

hash_passwrd = scrapertools.get_sha1( scrapertools.get_sha1( LOGIN.lower() + PASSWORD.lower() ) + cur_session_id)
logger.info("hash_passwrd="+hash_passwrd)

-segundo, el código que envía la petición post:

Hay una línea acotada:

pst: user=blablabla&passwrd=&cookielength=-1&hash_passwrd=78e88DSe408508d22f

para luego hacer así la petición:

post = "user="+LOGIN+"&passwrd=&cookielength=-1&hash_passwrd="+hash_passwrd

-tercero, las cookies, ¿ se debería crear una en el fichero cookies.dat ? , si es así, ¿ de qué manera ?

Re: Conector MEGA funcionando

Publicado: 11 Abr 2013, 08:45
por buster25
Vaya... :oops: :oops: :oops: Hace nueve horas, Jesús me ha mandado a mi correo el canal con el login funcionado... :P :P :P :P , en contraprestación, hoy mismo tendré el canal mega-spain listo y subido y prometo enfrascarme con el resto de páginas que tienen enlaces Mega

Re: Conector MEGA funcionando

Publicado: 12 Abr 2013, 18:22
por jesus
A ver si continúo con el tutorial de desarrollo de add-ons, la próxima entrada que tocaba era precisamente la de cómo hacer un login. Como te dije, usaré el ejemplo de Megaspain porque me viene muy a mano.

Siento no haber estado más pendiente del foro, te habría evitado muchos dolores de cabeza :oops:

Re: Conector MEGA funcionando

Publicado: 26 May 2013, 01:20
por blogerr
Buenas espero servir de ayuda y ayudar a lo que pueda ,estado probando megapass que el maestro subió y a mi no me reproduce a ver si alguien se anima y me explica y dado que seguro que vosotros controláis mas este tema un saludo y gracias a todos por lo aportes .