Media Brazil Forum
Add-On preciso da vossa ajuda sobre login addo com o meu site - Printable Version

+- Media Brazil Forum (https://www.xbmcbrasil.net)
+-- Forum: KODI Tutoriais e Vídeo Tutoriais (https://www.xbmcbrasil.net/forumdisplay.php?fid=308)
+--- Forum: Tutoriais (https://www.xbmcbrasil.net/forumdisplay.php?fid=42)
+--- Thread: Add-On preciso da vossa ajuda sobre login addo com o meu site (/showthread.php?tid=3624)



preciso da vossa ajuda sobre login addo com o meu site - amorim2010 - 19/09/2017

boas preciso da vossa ajuda ha uns tens fiz o addon com login com um site agora tenho meu site com servidor dedicado onde estou a fazer o meu addon e quero adicioanar  o login seguindo este tutorial 

[GUIA] COMO ADICIONAR UMA FUNÇÃO DE LOGIN PARA O ADDON

[Image: login.jpg]

Espero que isso ajude algumas pessoas! Eu criei recentemente um bom número de código que funciona para efetuar login na maioria dos sites e um método bastante confiável para adaptá-lo a diferentes sites. Eu, portanto, escrevi um pequeno guia para facilitar mais pessoas que fornecem funções de login em seus addons. Eu insisto que ele deve funcionar para a maioria dos sites, mas não funcionará para todos os sites. Não é muito complicado, mas entrei em muitos detalhes. Portanto, não seja adiada pelo tamanho deste post. Em primeiro lugar, aqui estão as funções de login. (Você precisará modificar isso) Baixe weblogin.py e aqui está a função que você deve usar em seu addon para carregar html com,









[/url]

para que você possa obter todos os dados legais agradáveis que 
você precisará ajustar um pouco isso - veja a etapa 20 
[url=http://code.google.com/p/anarchintosh-projects/downloads/detail?name=gethtml.py&can=2&q=]Download gethtml.py 


Como funciona este código de login? Este código de login funciona preenchendo os formulários de nome de usuário e senha em um site, enviando a solicitação e salvando os cookies enviados pela resposta em um arquivo se o login for bem-sucedido. 
Para verificar se o login foi bem sucedido, ele faz o html da resposta para algum texto que só aparece no html quando você está logado. Você então usa o arquivo de cookies ao carregar qualquer URL desse site (veja o fragmento do código no final da postagem) 

O que você precisa fazer para configurar o código de login para o seu site de destino

Você precisará: 
Google Chrome ou um sniffer de tráfego na web instalado.
Um login de trabalho para o seu site.[/font][/size][/color]




1. Em primeiro lugar, coloque seu nome de usuário e senha no campo CONFIGURAÇÕES DE TESTE de weblogin.py 

ENCONTRANDO O STRING PARA VERIFICAR SEJA QUE TENHA LOGADO EM

2. Em seguida, abra a página de login do seu site no Google Chrome e abra a fonte da página em uma guia. 3. Agora faça o login. Novamente, abra a fonte da página em outra guia nova. 4. Agora, compare as duas fontes da página e tente encontrar uma diferença entre as duas que podem ser usadas para verificar se você está logado, usando a função de pesquisa Ctrl + F. Olhando para a página web real (não fonte da página), muitas vezes pode dar pistas para alguns sites, você pode encontrar 'Bem-vindo' ou 'Olá' na fonte da página. Alternativamente, você pode verificar se seu nome de usuário pode ser encontrado na fonte da página conectada.




color=#000000]5. Você obteve o seu texto especial, então, coloque isso no weblogin.py: [/color]
Vá para a função check_login e configure o login_in_string para o nome de usuário (sem aspas) ou "seu-especial-bit-of-text". 

OBTENÇÃO DA LOGIN URL E DADOS DE FORMULAÇÃO
6. No Chrome, feche as abas que você abriu anteriormente, faça o login novamente no seu site e volte para a página de login. 7. Clique com o botão direito em qualquer lugar da página e selecione Inspecionar elemento. Uma grande barra de informações aparecerá. Selecione a guia Rede na parte superior da barra. Em seguida, verifique se a entrada All está selecionada na parte inferior. Em seguida, clique na coluna Timeline e, no menu suspenso, selecione Start Time. Para garantir que o campo esteja limpo antes de começar, clique no pequeno botão Limpar à esquerda de Tudo. Deve ser assim:




[Image: Screenshot-1_opt.png]

8. Agora você está pronto para capturar seus valores. Digite seus detalhes nos campos Nome de usuário e Senha na página da Web e faça login no seu site. Você deve ver muitos pedidos serem capturados no campo. 9. Uma vez que tudo termine de carregar, recorra o campo e procure as primeiras coisas que aconteceram quando você clicou no botão de logon.

Você deve ver o arquivo que foi enviado para efetuar o login. Pode ser nomeado como login ou signin.php, etc.

10. Se você não tiver certeza de qual arquivo enviou seu nome de usuário e senha, olhe através dos cabeçalhos do topo / primeiros arquivos enviados. Role para baixo dentro da entrada Cabeçalhos e tente encontrar seu nome de usuário e senha na seção Dados do formulário.

11. Supondo que você tenha encontrado os cabeçalhos do arquivo que enviou o seu log para o site, agora você pode usar seus valores em weblogin.py. Na parte superior do cabeçalho, você deve ver um valor chamado "URL da solicitação:". Esta é a sua URL de login. Salve isso para mais tarde. 12. Além do cabeçalho você deve ver uma seção chamada Dados do formulário. Copie esta seção e cole-a em um arquivo de texto vazio para mais tarde. Por exemplo:




[Image: form_data.png]

13. Agora volte para o seu weblogin.py e role para baixo para a função doLogin. Você quer colar seu URL de login na seqüência login_url e colocar os dados do formulário na seção login_data entre os {suportes curly} (mas primeiro apague meus dados de formulário Fantasti.cc). Separar campo e valor com um ':' e cada campo com ','. Hardcode todos os campos para os valores que você encontrou nos Dados do formulário, exceto os campos de nome de usuário e senha - eles devem ser preenchidos com as palavras: nome de usuário e senha, repectivamente (sem aspas). TESTES


14. Certifique-se de colocar seu nome de usuário e senha nas CONFIGURAÇÕES DE TESTE, e agora teste se tudo funciona executando o arquivo. (pressione F5). Ele deve imprimir True se o login for bem-sucedido. Se isso funcionar, experimente deliberadamente erroneamente o seu nome de usuário ou senha e execute-o novamente. Agora deve imprimir False. 15. Alguma coisa errada? Verifique os valores do formulário (login_data), login_url e a seqüência de verificação de login. PARA USAR ESTE EM SEU ADDON 16. Siga seus dados das CONFIGURAÇÕES DE TESTE! Você não quer compartilhar seu nome de usuário e senha com o mundo inteiro por meio do seu código-fonte. 17. Procure na seção USAGE do weblogin.py para obter instruções, é muito fácil chamar isso do seu padrão.py









18. Você vai querer chamar weblogin.py no arranque do seu addon, então ligue-o junto com os primeiros diretórios que você adiciona. 19. Você também precisará colocar uma opção de Login de Uso e um campo Nome de Usuário e Senha em seu settings.xml, juntamente com as cadeias de idioma. Aqui está um exemplo de tais configurações.xml


Código:
Code:
<settings>
    <setting id="use-account" type="bool" label="30200" default="false"/>
    <setting id="username" type="text" label="30201" default="" enable="!eq(-1,false)"/>
    <setting id="password" type="text" label="30202" default="" option="hidden" enable="!eq(-2,false)"/>
    <setting id="hide-successful-login-messages" type="bool" label="30203" default="false" enable="!eq(-3,false)"/>
</settings>


Então, veja este exemplo muito áspero para como lidar com essas configurações no default.py 
Você quer ligar para STARTUP_ROUTINES () quando você iniciar o addon. Este exemplo demonstra como você pode usar notificações para exibir se o login funcionou e adicionar certos diretórios se o login for bem-sucedido. Se você é inteligente, você pode até criar uma função de avatar para exibir o avatar do usuário na notificação de login bem-sucedida.

Código PHP:
Code:
import xbmc,xbmcaddon

def Notify(title,message,times,icon):
        xbmc.executebuiltin("XBMC.Notification("+title+","+message+","+times+","+icon+")")

def LOGIN(username,password,hidesuccess):
        uc = username[0].upper() + username[1:]
        lc = username.lower()
        
        logged_in = weblogin.doLogin(__datapath__,username,password)
        if logged_in == True:

                avatar = get_avatar(lc)

                if hidesuccess == 'false':
                     Notify('Welcome back '+uc,'Fantasti.cc loves you','4000',avatar)

                addDir(uc+"'s Videos",main_url+'user/'+lc+'/videos/save_date',1,avatar)           
                addDir(uc+"'s Collections",main_url+'user/'+lc+'/collections',2,avatar)
                addDir(uc+"'s Favourited Collections",main_url+'user/'+lc+'/collections/favourited',2,avatar)
                addDir(uc+"'s Rated Collections",main_url+'user/'+lc+'/collections/rated',2,avatar)

        elif logged_in == False:

                Notify('Login Failure',uc+' could not login','4000',default_image)

def STARTUP_ROUTINES():
        #deal with bug that happens if the datapath doesn't exist
        if not os.path.exists(__datapath__):
          os.makedirs(__datapath__)

        #check if user has enabled use-login setting
        usrsettings = xbmcaddon.Addon(id=__addonname__)
        use_account = usrsettings.getSetting('use-account')

        if use_account == 'true':
             #get username and password and do login with them
             #also get whether to hid successful login notification
             username = usrsettings.getSetting('username')
             password = usrsettings.getSetting('password')
             hidesuccess = usrsettings.getSetting('hide-successful-login-messages')

             LOGIN(username,password,hidesuccess) 


20. Você também precisará usar o cookiefile ao carregar as páginas da web que você pretende raspar (se você quiser estar logado). É simples de fazer. Se você quiser, você pode usar o gethtml.py fornecido (link no topo da postagem). Você precisará abri-lo e editar a lista de URLs que ele irá carregar com os cookies. ele também contém instruções de uso. .