






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

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