Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - $francisco

#121
Muy buenas, tengo un problema que no se a que se debe ya que lo he intentado todo y no funciona nada.

Resulta que cambié de compañía de internet, y me puse a configurar el router, como ya saben y se que me lo van a decir la DMZ no es recomendable utilizarla pero la utilice para probar y descartar errores, puse mi pc como DMZ y resulta que no puedo acceder a mi pc ni siquiera a una web en el puerto 80 con un pequeño servidor apache que tengo, desde la red interna todo funciona perfectamente pero cuando me pongo a acceder desde la ip externa no me deja por ejemplo: "ip_externa/facturas/index.php",

También probé con python en puertos como el 6565 o el 7000 pero parece ser que por algún motivo no puedo acceder desde el exterior, entonces me propuse a llamar la compañía y estuve hablando con un técnico que me reviso la conexión... me dijo que no tenia ningún puerto cerrado y que probara a reiniciar todos los dispositivos entonces reinicie router y moden pero sigue sin funcionar, también lo hice sin la DMZ con redirección de puertos externos hacia la red interna a mi pc pero tampoco, ya se me agotaron todas las ideas ¿que puedo hacer?
#122
Saludos!!!! Pes como dije, si conocen alguna librería o módulo para poder recuperar archivos eliminados de la papelera o si se puede usando los standar.

Gracias.
#123
Gracias, cambiare el post y pondré mas información de como funciona todo.
#124
Que tal a todos, terminé unos scripts para poder descargar vídeos de youtube y convertirlos a otro formato, y respecto a las otras librerias la unica diferencia es que quizas necesite mejorar bastante pero te muestra el porcentaje de descarga, se puede convertir a otro formato y también te muestra el porcentaje de conversión, espero que les guste.

primero tenemos que tener una caperta llamada "pyDownloader" que contendrá los siguientes archivos.

1- __init__.py

Código: python
from main import *


2- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Código: python
#by hackloper
#skype: hackloper
#youtube: https://www.youtube.com/user/hackdeveloper
#gmail: [email protected]
#twitter: https://twitter.com/hackloper | @hackloper

import urllib2,urlparse,urllib,threading,time,os,re,pyffmpeg

class ErrorDownload(Exception):
def __init__(self,error):
self._error = error

def __str__(self):
return repr(self._error)

class pyDownloader(object):
def __init__(self,url,convert_to=False,automatic_print=False):
self._id = urlparse.parse_qs(urlparse.urlparse(url).query)['v'][0]
self._path = "https://www.youtube.com/get_video_info?video_id="
self._content = self.get_content()
try:
self._streams = self.get_streams()
except KeyError:
raise ErrorDownload("Invalid url.")
self.convert_to = convert_to
self.automatic_print = automatic_print
self._end_download = False

def print_write_size(self,size,name,extension):
d = os.getcwd()
error = 0
total_name = str("%s\\%s.%s" %(d,name,extension))
time.sleep(3)
while True:
try:
while int(os.path.getsize(total_name)) != int(size):
print str(int(os.path.getsize(total_name))*100/int(size))+"%"
time.sleep(0.3)
print "100%"
break
except:
if error >= 6:break
error += 1
print "error"
time.sleep(1)

def get_size_write(self):
time.sleep(1)
d = os.getcwd()

try:
porcent = str(int(os.path.getsize(self.total_name))*100/int(self.size))+"%"
return porcent
except WindowsError:
return "waiting"

def get_info(self):
return self._content

def get_size_convert(self):
if self.convert_to == False:
return False
else:
if self._end_download == False:
return "waiting"
else:
progress = pyffmpeg.progress()
rest = progress.get_size_convert()
return rest

def get_content(self):
response = urllib2.urlopen(self._path+self._id)
parse_content = urlparse.parse_qs(response.read())
return parse_content

def get_streams(self):
streams = self._content['url_encoded_fmt_stream_map'][0]
streams = streams.split(',')
streams = [urlparse.parse_qs(elem) for elem in streams]
return streams

def select_url_stream(self,type_file):
for i in self._streams:
t = re.search(r'/([\w?-]+)',i['type'][0])
if t.group(1) == type_file:
return i['url'][0]

def download_manual(self,url_stream,type_f,to,obj):
urllib.urlretrieve(url_stream,'%s.%s' %(obj.title,type_f))
obj._end_download = True
if obj.convert_to == True:
ffmpeg = pyffmpeg.ffmpeg(obj.title,obj.total_name,to)
ffmpeg.convert()


def download(self,type_f='mp4',to='mp3'):
self.title = self._content['title'][0]
site = urllib.urlopen(self.select_url_stream(type_f))
self.size =  site.info().getheaders('Content-Length')[0]
self.extension = type_f
d = os.getcwd()
self.total_name = str("%s\\%s.%s" %(d,self.title,type_f))
if int(self.size) == 0:
raise ErrorDownload("This video can not be downloaded by copyright")
else:
if self.automatic_print == True:
th = threading.Thread(target=self.print_write_size,args=(self.size,self.title,type_f))
th.start()
urllib.urlretrieve(self.select_url_stream(type_f),'%s.%s' %(self.title,type_f))
if self.convert_to == True:
ffmpeg = pyffmpeg.ffmpeg(self.title,self.total_name,to)
ffmpeg.convert()
else:
url_stream = self.select_url_stream(type_f)
thread = threading.Thread(target=self.download_manual,\
args=(url_stream,type_f,to,self))
thread.start()


Dentro de esta carpeta tendrá que habe rotra llamada pyffmpeg que contiene los siguientes archivos.

3- __init__.py

Código: python
from main import *


4- You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login
Código: python

#by hackloper
#skype: hackloper
#youtube: https://www.youtube.com/user/hackdeveloper
#gmail: [email protected]
#twitter: https://twitter.com/hackloper | @hackloper
#blog: http://hackloper.blogspot.com.es/

import threading,os,re,time

class progress(threading.Thread):
def __init__(self):
threading.Thread.__init__(self)

def get_seconds(self,times):
list_time = [360,60,0]
seconds = 0
split_time = times.split(":")
for i in range(3):
seconds += int(split_time[i])*list_time[i]

return seconds

def get_total_time(self):
times = None

f = self.open_file()
for line in f.readlines():
if "Duration" in line:
times = re.search(r"Duration: ([\w?:]+)",line).group(1)

f.close()
return int(self.get_seconds(times))


def get_actual_time(self,line):
times = re.findall(r"time=([\w?:]+)",line)
return self.get_seconds(times[-1])

def open_file(self):
while True:
if os.path.exists("log.txt"):
f = open("log.txt","r")
return f
else:
time.sleep(1)
continue

def get_size_convert(self):
total_time = self.get_total_time()

f = self.open_file()
last_line = f.readlines()[-1]
if "time=" in last_line:
actual_time = self.get_actual_time(last_line)
f.close()
porcentaje = (100*actual_time)/total_time
return str(porcentaje)+"%"
time.sleep(1)
elif "muxing overhead" in last_line:
return "100%"
else:
return "waiting"

def run(self):
total_time = self.get_total_time()

while True:
f = self.open_file()
last_line = f.readlines()[-1]
if "time=" in last_line:
actual_time = self.get_actual_time(last_line)
f.close()
porcentaje = (100*actual_time)/total_time
print str(porcentaje)+"%"
time.sleep(1)
elif "muxing overhead":
print "100%"
break
else:
break

class ffmpeg(object):

def __init__(self,name,total_dir,fmt_out='mp3',automatic_print=False):
self._fmt_out = fmt_out
self._name = name
self.total_dir = total_dir
self.automatic_print = automatic_print

def convert(self):
if os.path.exists("log.txt"): os.remove("log.txt")
if self.automatic_print == True:
print "entra automatico"
p = progress()
p.daemon = True
p.start()
command = 'pyffmpeg\\ffmpeg.exe -i "%s" -y -f %s "%s.%s" 2> log.txt' %(self.total_dir,self._fmt_out,self._name,self._fmt_out)
os.system(command)


5- Dentro de esta carpeta tendrá que estar el archivo ffmpeg.exe que se puede descargar de su página oficial.
You are not allowed to view links. You are not allowed to view links. Register or Login or You are not allowed to view links. Register or Login

Metodo de uso

Código: python
import pyDownloader
#"convert_to" y "automatic_print" por defecto es False
obj = pyDownloader.pyDownloader("url_completa_de_youtube",convert_to=True,automatic_print=False)
#"type_f" es el formate de descarga que por defecto es "mp4" y "to" es el formato al que se va a convertir
#que por defecto es "mp3"
obj.download(type_f="ogg",to="flv")

def downloading():
while True:
info_download = obj.get_size_write()
if info_download == "waiting":
time.sleep(1)
elif info_download == "100%":
print info_download
break
else:
print info_download
time.sleep(1)

def convert():
while True:
info_convert = obj.get_size_convert()
if info_convert == False:
break
elif info_convert == "waiting":
time.sleep(1)
elif info_convert == "100%":
print info_convert
break
else:
print info_convert
time.sleep(1)

downloading()
convert()

Bueno, pues lo dicho, espero que les guste y que les sea útil.
#125
Muchas gracias a todos, seguro que vuestras respuestas les sirve a mas de uno.
#126
Muy buenas, estoy buscando un curso, Soy de Murcia, y bueno si es semipresencial mejor de por aquí  :) .
Los ultimos cursos que he  buscando son bastante caros de 1900€ y 2500€ demasiado para lo que me puedo permitir en estos momentos, el ultimo era de programación java incluyendo la programación con android y el curso estaba  bastante bien pero según me dijeron el titulo no tenia mucha validez por la universidad, el gran problema que tengo es el tiempo, estoy trabajando y solo tengo tiempo los fines de semana, estoy deseando tener una titulación de este tipo y empezar a ejercer o por lo menos ha hacer algo de este tipo, de ante mano gradecer todas las respuestas.
#127
Muchas gracias por la respuesta, no entiendo mucho, pero creo que lo que dice es que tengo que guardarlo en la sd y ejecutarlo desde hay, intentaré buscar mas información sobre esto.
#128
Al parecer son permisos que le falta a ffmpeg pero no me deja darselos.

Código: java
view.addJavascriptInterface(new Object()
            {
                @JavascriptInterface
                public void performClick() throws Exception
                {
                    File source = new File("/sdcard/cancion.mp4");
                    File target = new File("target.mp3");
                    AudioAttributes audio = new AudioAttributes();
                    audio.setCodec("libmp3lame");
                    audio.setBitRate(new Integer(128000));
                    audio.setChannels(new Integer(2));
                    audio.setSamplingRate(new Integer(44100));
                    EncodingAttributes attrs = new EncodingAttributes();
                    attrs.setFormat("mp3");
                    attrs.setAudioAttributes(audio);
                    Encoder encoder = new Encoder();
                    encoder.encode(source, target, attrs);
                }
            },"Android");
            return true;
            }
        }



Código: text
05-15 00:30:24.848    6348-6362/com.hackloper.probando W/System.err﹕ java.io.IOException: Error running exec(). Command: [/bin/chmod, 755, /data/data/com.hackloper.probando/cache/jave-1/ffmpeg] Working Directory: null Environment: null
05-15 00:30:24.860    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.ProcessManager.exec(ProcessManager.java:211)
05-15 00:30:24.861    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.Runtime.exec(Runtime.java:169)
05-15 00:30:24.862    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.Runtime.exec(Runtime.java:124)
05-15 00:30:24.863    6348-6362/com.hackloper.probando W/System.err﹕ at it.sauronsoftware.jave.DefaultFFMPEGLocator.<init>(DefaultFFMPEGLocator.java:85)
05-15 00:30:24.864    6348-6362/com.hackloper.probando W/System.err﹕ at it.sauronsoftware.jave.Encoder.<init>(Encoder.java:111)
05-15 00:30:24.865    6348-6362/com.hackloper.probando W/System.err﹕ at com.hackloper.probando.MainActivity$myWebClient$1.performClick(MainActivity.java:54)
05-15 00:30:24.865    6348-6362/com.hackloper.probando W/System.err﹕ at android.webkit.JWebCoreJavaBridge.nativeServiceFuncPtrQueue(Native Method)
05-15 00:30:24.865    6348-6362/com.hackloper.probando W/System.err﹕ at android.webkit.JWebCoreJavaBridge.nativeServiceFuncPtrQueue(Native Method)
05-15 00:30:24.865    6348-6362/com.hackloper.probando W/System.err﹕ at android.webkit.JWebCoreJavaBridge.handleMessage(JWebCoreJavaBridge.java:113)
05-15 00:30:24.866    6348-6362/com.hackloper.probando W/System.err﹕ at android.os.Handler.dispatchMessage(Handler.java:107)
05-15 00:30:24.866    6348-6362/com.hackloper.probando W/System.err﹕ at android.os.Looper.loop(Looper.java:194)
05-15 00:30:24.866    6348-6362/com.hackloper.probando W/System.err﹕ at android.webkit.WebViewCore$WebCoreThread.run(WebViewCore.java:930)
05-15 00:30:24.866    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.Thread.run(Thread.java:838)
05-15 00:30:24.867    6348-6362/com.hackloper.probando W/System.err﹕ Caused by: java.io.IOException: No such file or directory
05-15 00:30:24.867    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.ProcessManager.exec(Native Method)
05-15 00:30:24.868    6348-6362/com.hackloper.probando W/System.err﹕ at java.lang.ProcessManager.exec(ProcessManager.java:209)
05-15 00:30:24.868    6348-6362/com.hackloper.probando W/System.err﹕ ... 12 more


Código: text
shell@android:/ $ chmod 777 /data/data/com.hackloper.probando/cache/jave-1/ff
mpeg


me deja acceder hasta cache, a partir de cache no me deja en "jave-1" me dice acceso denegado.

¿como podría darle permisos de ejecución? a ser posible que no haga falta rootear el móvil, sería algo molesto que una aplicación para pasar a mp3 necesite un movil rooteado o ¿saben alguna otra alternativa para convertir videos y audios?.
#129
La verdad estuve antes con eclipse, pero me fije que android studio es la "oficial" para crear aplicaciones android
#130
Muy buens, estoy utilizando la libreria jave de java,  la he probado en eclipse y funciona, en android studio la incluyo y cuando la pruebo me lanza elbsiguiente error.

Código: text

Working Directory: null Environment: null


Y tambien

Código: text
Caused by: java.io.IOException: Permission denied


El caso es que le doi permisos de escritura y lectura en la sd pero segun he estado leyendo podria ser que no tenga permisos root o que no tenga instalado ffmpeg pero no lo tengo nada claro ya que jave viene con ffmpeg ¿cual es el error? ¿Como puedo hacerlo funcionar?
#131
Ideas y Sugerencias / [SOLUCIONADO] Temas movidos
Marzo 14, 2015, 06:51:10 PM
Muy buenas, he recibido un mensaje de el foro de que tomaran medidas si no posteo en los sitios adecuados pero lo veo algo excesivo, pero si tengo una duda respecto a un módulo de python o de java ¿en dudas generales? creo que estas preguntas se hacen en el subforo de python por que son preguntas relacionadas ha este tipo por que si no que coloco en el subforo de python ¿solo los scripts creados para compartirlos? Si esto es así todo mis preguntas relacionadas a cualquier lenguaje las haré en la sección dudas y pedidos....
#132
Código: html5
<form action method="POST">
...
...
...
</form>


Código: python
data = re.findall(r" <form action method="POST">(.*)</form>",text)

print data


pero no decuelve nada ¿como puedo devolver todo el contenido del form?
#133
Muy buenas, les resumo toda la cuestión, en windows xp si funciona pero en windows 8 no funciona el mismo código, aquí se lo muestro.

Código: python
# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'videoPlayer.ui'
#
# Created: Wed Mar 11 23:20:54 2015
#      by: PyQt4 UI code generator 4.11.3
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    def _fromUtf8(s):
        return s

try:
    _encoding = QtGui.QApplication.UnicodeUTF8
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
    def _translate(context, text, disambig):
        return QtGui.QApplication.translate(context, text, disambig)

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        MainWindow.resize(343, 336)
        self.centralwidget = QtGui.QWidget(MainWindow)
        self.centralwidget.setObjectName(_fromUtf8("centralwidget"))
        self.gridLayout = QtGui.QGridLayout(self.centralwidget)
        self.gridLayout.setObjectName(_fromUtf8("gridLayout"))
        self.videoPlayer = phonon.Phonon.VideoPlayer(phonon.Phonon.VideoCategory,self.centralwidget)
        self.videoPlayer.setObjectName(_fromUtf8("videoPlayer"))
        self.gridLayout.addWidget(self.videoPlayer, 0, 0, 1, 1)
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
        self.new()

    def retranslateUi(self, MainWindow):
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow", None))

    def new(self):
        media_source = phonon.Phonon.MediaSource("video.mp4")
        self.videoPlayer.load(media_source)
        self.videoPlayer.play()
        print self.videoPlayer.isPlaying()

from PyQt4 import phonon
import sys

if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    widged = QtGui.QMainWindow()
    mainWindow = Ui_MainWindow()
    mainWindow.setupUi(widged)
    widged.show()
    sys.exit(app.exec_())


No le encuentro ningún sentido a esto, a no ser que sea algo relacionado a que debe ejecutarse como administrador.... pero no tiene mucho sentido.
#134
Dudas y pedidos generales / Re:Programa Python
Marzo 07, 2015, 07:23:45 PM
echa un vistazo.

Código: python
final = []

def kill(num):
  n = 1
  for i in range(1,num+1):
    if n != 3:
      n += 1
    else:
      n = 0
      final.append(i)
kill(10)
print final
#135
Python / Re:[LoaderTk] Compartiendo código.
Marzo 05, 2015, 07:00:03 PM
se me paso por alto ese detalle  ;D digamos que se llama array o tupla.
#136
gracias whiz, seguro alguno de estos me sirve, pero me gustaría saber como agregarlo a la lista de programas instalador, mas bien para poder personalizar lo al gusto y sobre todo para saber como funciona mejor windows.
#137
Muy buenas, he estado buscando información sobre esto pero en ningún lado me dice como hacerlo, para mas detalles, quiero hacer un instalador, es decir yo compilo mi aplicación python a exe, y a parte creo mi instalador, lo que hace el instalador es descargar mi aplicación donde están todos los de mas programas en C:/archivos de programa/ pero aunque lo descargue yo quiero que me aparezca en la lista de programas instalados ¿alguna idea de como hacerlo?

Gracias.
#138
Python / [LoaderTk] Compartiendo código.
Febrero 23, 2015, 06:09:36 PM
Muy buenas, ya hacia un poco de tiempo no utilizaba python e hice un cargador y quiero compartir lo con ustedes.

loaderTk.py

Código: python
import mtTkinter as Tkinter
import ttk,time,threading,Image,ImageTk,tkMessageBox,Queue

#Tk
MAXCOUNT = 100
IMAGE_LABEL = 'anonymous.jpg'

#messageBox
MESSAGE = "proceso terminado"
TITLE = "completado"

class changeState(threading.Thread):
def __init__(self,value,progres,label,msg):
threading.Thread.__init__(self)
self._value = value
self._progres = progres
self._label = label
self._msg = msg

def run(self):
self._progres["value"] = self._value
self._label.set(str(self._value)+"%")
if self._value == MAXCOUNT:self._msg()

class windowLoader(Tkinter.Tk):
def __init__(self):
Tkinter.Tk.__init__(self)
self.geometry("400x400")
lista = ("createImage","label","progresbar")
for i in lista:
getattr(self,i)()

def label(self):
self.v = Tkinter.StringVar()
self.v.set("0%")
label_1 = Tkinter.Label(self,image=self.image)
label_1.pack(fill=Tkinter.BOTH,expand=True)

label_2 = Tkinter.Label(label_1,textvariable=self.v)
label_2.pack(side="bottom")

def msg(self):
msgbox = tkMessageBox.showinfo(TITLE,MESSAGE)
self.quit()

def change(self,value):
state = changeState(value,self.progres,self.v,self.msg)
state.daemon = True
state.start()

def createImage(self):
openImage = Image.open(IMAGE_LABEL)
self.image = ImageTk.PhotoImage(openImage)

def progresbar(self):
self.progres = ttk.Progressbar(self,length=1,maximum=MAXCOUNT)
self.progres.pack(fill=Tkinter.X)

class threadLoader(threading.Thread):
def __init__(self,q):
threading.Thread.__init__(self)
self.q = q

def run(self):
root = windowLoader()
self.q.put(root)
root.mainloop()


def loader():
q = Queue.Queue()
call = threadLoader(q)
call.start()
instance = q.get()
return instance



ejemplo:

Código: python
import loaderTk

loader = loaderTk.loader()

for i in range(100):
loader.change(i+1)
time.sleep(0.1)


Bueno, se puede mejorar pero ahí, se los dejo.
#139
Gracias, vere tutoriales de como hacerlo y sobre todo aprendere java o lo intentare por que es lo que mas necesito y despues comentare todas las dudas, gracias a todos.
#140
Muchas gracias, una duda es si quisieta hacerlo un poquito mas diferente, por ejemplo un label y un edittext a la dercha y un button debajo centrado.

Esto es totalmente nuevo y muy interesante para mi por que vengo de python, y otra cosa que me mata la curiosidad    aunque ya se que tengo que ir poco a poco es abrir una nueva ventana.

Otra cosa que se me olvido contestar es lo de android studio, lo instale y me daba error en el avd al arrancar la maquina virtual, error de virtualizacion intel, y tengo acivada la virtualizacion, creo que es problema del avd quizas ahora al tener el sdk preinstalado ya no me pase esto.