httptools.downloadpage con contraseña

Intel1

Miembro del equipo
16 Oct 2017
316
164
43
#2
Hola, con el httptools.dowunloadpage, podrías usar ese tipo de url sin problema, pero sin algun ejemplo en concreto no se puede probar.

Haz visto si realmente es http? o puede ser https? será que usa GET o POST? tal vez envía mas datos de lo que vez, en herramientas para desarrollador de chrome y en Network puedes ver si se envía mas datos para que lo envies tambien con el httptools.downloadpage

Saludos.
 

m0n4t

Usuario Novato
9 Mar 2019
6
1
3
41
#3
Buenas.. grácias por el aporte.. pero no hay manera maxo... xDDDD

Para compartir material sin hacer web había pensado lo siguiente... crear un canal por ejemplo de esta manera.

Python:
{
  "id": "tryit",
  "name": "tryit",
  "active": true,
  "adult": false,
  "language": ["cast"],
  "thumbnail": "https://imgur.com/qztHEZ5.png",
  "banner": "",
  "categories": [
    "direct",
    "friends"
  ],
  "settings": [
    {
      "id": "include_in_global_search",
      "type": "bool",
      "label": "Incluir en busqueda global",
      "default": true,
      "enabled": true,
      "visible": true
    }
  ]
}
y luego un simple apache con autenticación para compartir una carpeta tal cual,, un browse de un directorio vamos...

luego el tryit.py
Python:
# -*- coding: utf-8 -*-

import os
import re
import urllib
import string

from core import httptools
from core import scrapertools
from core import servertools
from core import tmdb
from core.item import Item
from channelselector import get_thumb
from platformcode import config, logger

page_url = "http://192.168.1.45/media/MyStorage/"

def mainlist(item):
    logger.info()
    itemlist = []
    itemlist.append( Item(channel=item.channel, title="Videos" , action="lista", url=page_url, thumbnail=get_thumb('movies', auto=True)))  
    return itemlist
   
def lista(item):
    logger.info()
    itemlist = []
   
   
    provaint = httptools.downloadpage(page_url).sucess
    logger.error(provaint)
   
    provacode= httptools.downloadpage(page_url).code
    logger.error(provacode)  
   
    data = httptools.downloadpage(page_url).data
    logger.error(data)
   
    patronvideo = 'href="([^"]*)"[^>]*'
    matchesvideo = scrapertools.find_multiple_matches(data, patronvideo)  
    #logger.error(matchesvideo)

    for x in matchesvideo:
        if (".mkv" or ".mp4") in x:
            new_strpng = string.replace(x, '.mkv', '.png')
            new_strtxt = string.replace(x, '.mkv', '.txt')
           
            datacomment = httptools.downloadpage(page_url+new_strtxt).data
            dataimage = httptools.downloadpage(page_url+new_strpng).data

            datacomentexist = httptools.downloadpage(page_url+new_strtxt).sucess
            dataimageexist = httptools.downloadpage(page_url+new_strpng).sucess

            if datacomentexist and dataimageexist:
               itemlist.append(item.clone(title='[COLOR yellowgreen]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot=datacomment))              
           
            if datacomentexist and dataimageexist is False:
               itemlist.append(item.clone(title='[COLOR orange]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot=datacomment))
                   
            if datacomentexist is False and dataimageexist:
               itemlist.append(item.clone(title='[COLOR yellow]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot="Ningún comentario"))

            if datacomentexist is False and dataimageexist is False:
               itemlist.append(item.clone(title='[COLOR red]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot="Ningún comentario"))
    return itemlist
Así al hacer un browse del directorio con apache pues tendría que haber como ves en el código 3 ficheros con el mismo nombre diferente extensión,, uno para la imagen, otro para el video y el otro para el texto.

Pero para dar un poquitín de seguridad quería meterle la contraseña tipo http://prueba:prueba@192.168.1.45/media/MyStorage/

Pero bueno,, no se como verás la idea, pero almenos para compartir con un compi sería sencillo y cómodo, sin portales.

Este código funciona perfectamente para ese menester... el problema surge si quiero darle seguridad... se que se pueden ocultar los directorios del browse y todo eso del apache... pero molaba más poder crear almenos usuarios con .htaccess por ejemplo. :D
 

Intel1

Miembro del equipo
16 Oct 2017
316
164
43
#4
ok, ya entendí, estás usando el .htaccess

La versión de mediaserver de Alfa, trabaja algo como eso, pero no exactamente, pero te puede servir para enviar las cabeceras tal vez.

Lo puedes bajar desde aquí:

alfa-addon/addon

Y en el archivo: HTTPAndWSServer.py está este código, en el cual puedes poner la variable: ControlAcceso = True y te pedirá un password como Apache.


1553276925275.png

Saludos.
 

Delta

Miembro del equipo
16 Oct 2017
857
940
93
#6
Buenas.. grácias por el aporte.. pero no hay manera maxo... xDDDD

Para compartir material sin hacer web había pensado lo siguiente... crear un canal por ejemplo de esta manera.

Python:
{
  "id": "tryit",
  "name": "tryit",
  "active": true,
  "adult": false,
  "language": ["cast"],
  "thumbnail": "https://imgur.com/qztHEZ5.png",
  "banner": "",
  "categories": [
    "direct",
    "friends"
  ],
  "settings": [
    {
      "id": "include_in_global_search",
      "type": "bool",
      "label": "Incluir en busqueda global",
      "default": true,
      "enabled": true,
      "visible": true
    }
  ]
}
y luego un simple apache con autenticación para compartir una carpeta tal cual,, un browse de un directorio vamos...

luego el tryit.py
Python:
# -*- coding: utf-8 -*-

import os
import re
import urllib
import string

from core import httptools
from core import scrapertools
from core import servertools
from core import tmdb
from core.item import Item
from channelselector import get_thumb
from platformcode import config, logger

page_url = "http://192.168.1.45/media/MyStorage/"

def mainlist(item):
    logger.info()
    itemlist = []
    itemlist.append( Item(channel=item.channel, title="Videos" , action="lista", url=page_url, thumbnail=get_thumb('movies', auto=True))) 
    return itemlist
  
def lista(item):
    logger.info()
    itemlist = []
  
  
    provaint = httptools.downloadpage(page_url).sucess
    logger.error(provaint)
  
    provacode= httptools.downloadpage(page_url).code
    logger.error(provacode) 
  
    data = httptools.downloadpage(page_url).data
    logger.error(data)
  
    patronvideo = 'href="([^"]*)"[^>]*'
    matchesvideo = scrapertools.find_multiple_matches(data, patronvideo) 
    #logger.error(matchesvideo)

    for x in matchesvideo:
        if (".mkv" or ".mp4") in x:
            new_strpng = string.replace(x, '.mkv', '.png')
            new_strtxt = string.replace(x, '.mkv', '.txt')
          
            datacomment = httptools.downloadpage(page_url+new_strtxt).data
            dataimage = httptools.downloadpage(page_url+new_strpng).data

            datacomentexist = httptools.downloadpage(page_url+new_strtxt).sucess
            dataimageexist = httptools.downloadpage(page_url+new_strpng).sucess

            if datacomentexist and dataimageexist:
               itemlist.append(item.clone(title='[COLOR yellowgreen]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot=datacomment))             
          
            if datacomentexist and dataimageexist is False:
               itemlist.append(item.clone(title='[COLOR orange]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot=datacomment))
                  
            if datacomentexist is False and dataimageexist:
               itemlist.append(item.clone(title='[COLOR yellow]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot="Ningún comentario"))

            if datacomentexist is False and dataimageexist is False:
               itemlist.append(item.clone(title='[COLOR red]%s[/COLOR]' % (x), url=page_url+x, action="play", fanart=page_url+new_strpng, thumbnail=page_url+new_strpng, plot="Ningún comentario"))
    return itemlist
Así al hacer un browse del directorio con apache pues tendría que haber como ves en el código 3 ficheros con el mismo nombre diferente extensión,, uno para la imagen, otro para el video y el otro para el texto.

Pero para dar un poquitín de seguridad quería meterle la contraseña tipo http://prueba:prueba@192.168.1.45/media/MyStorage/

Pero bueno,, no se como verás la idea, pero almenos para compartir con un compi sería sencillo y cómodo, sin portales.

Este código funciona perfectamente para ese menester... el problema surge si quiero darle seguridad... se que se pueden ocultar los directorios del browse y todo eso del apache... pero molaba más poder crear almenos usuarios con .htaccess por ejemplo. :D
Puedes probar mirando la nueva sección comunidad del foro donde se explica la forma de hacer canales sin necesidad de web, ya que hemos tenido algunos pedidos sobre el tema