Beispiel #1
0
def add_media():

	try:
		payload = request.form.to_dict()

		payload['user_id'] = str(model_to_dict(current_user)['id'])

		if 'www.youtube.com/watch?v=' in payload['url']:
			payload['media_type'] = 'video'
		else:
			return jsonify(data={}, status={'code': 401, 'message': 'URL input is not valid.'})
		
		if payload['media_type'] == 'video':


			v_location = payload['url'].index('v')

			eq_location = payload['url'].index('=')

			if eq_location == v_location + 1:
				url_id = payload['url'][eq_location + 1: eq_location + 12]
			else:
				return jsonify(data={}, status={'code': 401, 'message': 'URL input is not valid.'})


			payload['full_html'] = '<iframe width="560" height="315" src="https://www.youtube.com/embed/{}" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>'.format(url_id)

			payload['thumbnail_html'] = 'http://i.ytimg.com/vi/{}/maxresdefault.jpg'.format(url_id)


		media = Media.create(**payload)

		media_dict = model_to_dict(media)

		return jsonify(data=media_dict, status={'code': 201, 'message': 'Success'}) 
	except:
		return jsonify(data={}, status={'code': 401, 'message': 'Something went wrong!'})
Beispiel #2
0
 def post():
     return Media.create(request.files.get('image')), 201
Beispiel #3
0
def scrapingRssPost(post):
    logging.info("Start scraping post " + post.title)
    logging.debug("Url ->" + post.url)

    headers = {
        'User-Agent':
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'
    }
    logging.debug(headers['User-Agent'])

    url = requests.get(post.url, headers=headers)

    response = HtmlResponse(url=post.url, body=url.text, encoding='utf-8')

    data_extracted_title = re.split(r'\[(.*?)\]', post.title)

    clasification = response.xpath(
        '//ul[@class="breadcrumbs"]/li[position()=2]/a/text()').extract_first(
        )
    logging.debug("Clasification:" + clasification)

    if "Series" in clasification:
        episode = data_extracted_title[3]
        audio = data_extracted_title[5]
    else:
        episode = ""
        audio = data_extracted_title[3]

    quality = data_extracted_title[1]
    logging.debug("Quality:" + quality)
    logging.debug("Episode:" + episode)
    logging.debug("Audio:" + audio)

    # DEJAR PARA FUTURO
    media = response.xpath(
        '//ul[@class="breadcrumbs"]/li[position()=3]/a/text()').extract_first(
        )
    logging.debug("media:" + media)

    data = response.xpath(
        '//div[@class="page-box"]/h1/strong/text()').extract_first()
    season = data
    logging.debug("data:" + data)
    """
    dataextra = response.xpath('//div[@class="page-box"]/h1/strong/following-sibling::node()').extract_first()
    logging.debug("dataextra:" + dataextra)
    """

    divbox = response.xpath('//div[@class="entry-left"]')
    img = divbox.xpath('.//img/@src').extract_first()
    logging.debug("img:" + img)

    size = divbox.xpath('.//span/text()')[0].root.strip(' ')
    logging.debug("size:" + size)

    fecha = divbox.xpath('.//span/text()')[1].root.strip(' ')
    logging.debug("fecha:" + fecha)
    format = '%d-%m-%Y'
    try:
        fecha_convertida = datetime.datetime.strptime(fecha, format)
    except:
        fecha_convertida = datetime.datetime(datetime.datetime.now().year,
                                             datetime.datetime.now().month,
                                             datetime.datetime.now().day)

    logging.debug(fecha_convertida.date())

    # SACAR DESCRIPCION
    textosel = response.xpath('//div[@class="descripcion_top"]')
    datos = textosel.xpath('.//text()').extract()
    datos = '\n'.join(datos)

    # SACAR TORRENT
    texto = response.xpath('//div[@id="tab1"]//script/text()').extract()
    texto = texto[0]
    url_reg = re.compile(r'window.location.href \s*=\s"(\S*)\"')

    try:
        torrent = "http:" + url_reg.findall(texto)[0]
    except:
        torrent = "ERROR"

    media = Media.create(url=post.url,
                         quality=quality,
                         audio=audio,
                         season=season,
                         episode=episode,
                         clasification=clasification,
                         media=media,
                         data=data,
                         title=post.title,
                         img=img,
                         torrent=torrent,
                         size=size,
                         fecha=fecha_convertida,
                         descripcion=datos)
    media.save()
    logging.debug(media.to_json())
    ##logging.info(media)
    logging.info("End scraping post")