Busco a alguien que pueda crear un programa en Python con interfaz gráfica (finalizado)

58 Mensagens, 2 Páginas:  1 2 ↖ Voltar a lista de tópicos

Pontuação: +4

1. Lunnaris13,

¡Hola a todos!
Espero que estén bien. Quiero compartir con ustedes un proyecto en el que estoy trabajando. Se trata de la creación de audiolibros donde cada personaje tiene su propia voz, utilizando voces neuronales de Azure TTS de Microsoft y las voces de Amazon Polly. Estas herramientas me permiten darle vida a cada personaje de una manera única.
Actualmente, para dividir los libros en formato EPUB en capítulos, utilizo un complemento para Calibre llamado EpubSplit. Este complemento es accesible, pero solo a través del navegador de objetos de NVDA. El proceso para dividir los libros con EpubSplit es un poco tedioso y requiere navegar por varias opciones y menús.
Aquí es donde entra mi solicitud. Me gustaría tener un programa que haga este proceso mucho más sencillo y accesible, automatizando la división de los capítulos y permitiendo guardarlos como archivos de Word (DOCX). El programa sería de gran ayuda no solo para mí, sino también para otros que estén en una situación similar y busquen una manera más eficiente de preparar libros para la creación de audiolibros.
Descripción de la interfaz gráfica y funcionalidad del programa:
1.
Lista de libros: En el centro de la ventana del programa, me imagino una lista donde se pueda ver el libro que hemos añadido para procesar.
2.
Botones:
• A la derecha de la lista, un botón para añadir el libro desde el explorador de archivos de Windows.
• Una vez que se haya cargado el libro, que aparezcan dos botones más:
• Buscar carpeta: Un botón para elegir la carpeta donde se guardarán los capítulos divididos.
• Dividir en capítulos: Un botón que, al hacer clic, comienza el proceso de división del libro en capítulos.
3.
Indicador de progreso: Mientras se divide el libro en capítulos, me gustaría que la interfaz mostrara el progreso en tiempo real, indicando cuántos capítulos se han dividido con éxito y si hay algún error en la conversión.
4.
Diálogo final: Al finalizar, que aparezca un diálogo preguntando si queremos abrir la carpeta resultante donde se guardaron los capítulos en Word. Además, que se muestre un mensaje indicando cuántos capítulos se convirtieron con éxito.
5.
Un botón o atajo para eliminar el libro que hemos añadido si ya no lo necesitamos.
• Un botón para crear una nueva carpeta automáticamente donde se guardarán los capítulos divididos, en caso de que no queramos seleccionar una carpeta manualmente.
Descripción del código de referencia:
El código que tengo realiza las siguientes tareas:
• Descomprime el archivo EPUB.
• Encuentra los capítulos basándose en los encabezados (por ejemplo, <h1> y <h2>).
• Guarda cada capítulo en un archivo DOCX independiente.
Aquí les dejo el código como referencia para que vean cómo funciona:
python

import zipfile
import os
from lxml import etree, html
from docx import Document

def extract_chapters(epub_file, output_folder):
# Crear el directorio de salida si no existe
if not os.path.exists(output_folder):
os.makedirs(output_folder)

# Descomprimir el archivo EPUB
try:
with zipfile.ZipFile(epub_file, 'r') as zip_ref:
zip_ref.extractall(output_folder)
except zipfile.BadZipFile:
print("Error: El archivo EPUB está corrupto o no es un archivo zip válido.")
return

# Localizar el archivo OPF
opf_file = None
for root, _, files in os.walk(output_folder):
for file in files:
if file.endswith('.opf'):
opf_file = os.path.join(root, file)
break
if opf_file:
break

if not opf_file:
print("Error: No se encontró el archivo OPF en el EPUB.")
return

# Parsear el archivo OPF para encontrar los capítulos
try:
tree = etree.parse(opf_file)
namespaces = {'opf': 'http://www.idpf.org/2007/opf', '': 'http://www.idpf.org/2007/opf'}
items = tree.xpath('//opf:item[@media-type="application/xhtml+xml"]', namespaces=namespaces)
except etree.XMLSyntaxError:
print("Error: El archivo OPF no se pudo analizar. Asegúrate de que esté bien formado.")
return

# Obtener la ruta completa de cada archivo HTML
html_files = [os.path.join(os.path.dirname(opf_file), item.get('href')) for item in items]

# Procesar cada archivo HTML para encontrar y dividir capítulos
chapter_counter = 1
for html_file in html_files:
try:
with open(html_file, 'r', encoding='utf-8') as file:
content = file.read()
tree = html.fromstring(content)

# Encontrar encabezados que indican capítulos
chapters = tree.xpath('//h1 | //h2') # Ajustar si se usan otros niveles de encabezado

# Si no hay encabezados, continuar con el siguiente archivo
if not chapters:
continue

# Dividir el contenido en capítulos
for i, chapter in enumerate(chapters):
chapter_title = chapter.text_content().strip() or f"Capítulo {chapter_counter}"
start = tree.index(chapter)
end = tree.index(chapters[i + 1]) if i + 1 < len(chapters) else len(tree)

chapter_content = tree[start:end]
chapter_html = html.tostring(chapter_content, encoding='unicode', method='html')

# Crear y guardar cada capítulo en un archivo DOCX separado
doc = Document()
doc.add_heading(chapter_title, level=1)
doc.add_paragraph(html.fromstring(chapter_html).text_content())
output_docx_path = os.path.join(output_folder, f'chapter_{chapter_counter}.docx')
doc.save(output_docx_path)

print(f"Capítulo guardado: {output_docx_path}")
chapter_counter += 1
except Exception as e:
print(f"Error procesando el archivo {html_file}: {e}")

print(f"Capítulos extraídos a la carpeta: {output_folder}")

Uso del programa

epub_file = 'ruta/al/archivo.epub'
output_folder = 'ruta/al/directorio/de/salida'
extract_chapters(epub_file, output_folder)

Lo que necesito es que alguien se encargue de desarrollar este programa completo, incluyendo la interfaz gráfica y todas las funcionalidades adicionales que mencioné arriba. Aprecio mucho si alguien puede ayudarme con esto, ya que no tengo conocimientos de programación y prefiero dejarlo en manos de alguien que sepa. Estoy segura de que sería una herramienta muy útil no solo para mí, sino también para otros miembros de la comunidad.
Si alguien está interesado en crear este pequeño programa, me puede contactar a mi correo:
jacquelineparsonolave@gmail.com
¡Gracias por adelantado!

Pontuação: +0

2. Dherhion,

Y si tienes código, para qué nos necesitas?
No termino de entenderlo.
¿Necesitas que miremos el código? ¿Necesitas que lo corrijamos?

Pontuação: +0

3. tonny,

Es una pena porque lo tiene casi todo, creo que lo que le falta es la Gui.

Pontuação: +0

4. Angel_R05,

Es un código de ejemplo traído por gpt notablemente, especifica que no es programadora, supongo que lo da para que algún programador lo tome de referencia y que sepa lo que hay que hacer, y aparte da un medio de contacto al final del programa.
A veces hace falta leer todo completo eh.

Pontuação: +0

5. tonny,

Yo lo que entendí es que basado en ese código quiere una Gui.

Pontuação: +0

6. el_pichon,

¿Cuánto paga?

Pontuação: +0

7. Rayo,

iba a preguntar lo mismo. cuanto?

y específicamente por qué en Python? es sabido que Python no es un lenguaje usado para interfaces gráficas en el entorno del desarrollo avitualmente, es raro el programa que trabaje enteramente con el. generalmente las interfaces o se arman con c++, java o c#.

Pontuação: +0

Última edição por Rayo, Aug 16 2024 22:19:07

8. PrincesoGuerrero,

He aquí mi duda. La interfaz de algún programa en Puython que me v iene a la mente como Bookworm, por ejemplo. Ese tiene una interfaz gráfica. Yo entiendo que eso es, entonces, porque se usaron librerías externas en otros lenguajes importadas en Python, ya que de los programas que aprendí a hacer siempre eran en modo consola. Ya me sacarán la duda. Ahora voy a investigar (preguntándole a GPT) qué librerías/herramientas podemos emplear para la interfaz y cómo aplicarlas a partir de ese código.
Me gustaría mucho ayudar, de verdad, pero no dispongo del tiempo, aunque trabajo es trabajo, y el trabajo es pagado.

Pontuação: +0

9. Dherhion,

Python sí permite hacer interfaces gráficas.
Supongo que habrá escogido Python porque se lo ha dicho chatgpt.

Pontuação: +0

10. Rayo,

sí claro que permite, sí, pero comercialmente y fuera del mundo tiflo rara vez se verá una interfaz hecha con Python.

Pontuação: +0

11. gianella.delgado,

de verdad? yo pensé que muchos programas con interfás gráfica eran echos en Python y esos programas obviamente no solamente eran de ciegos para ciegos. pensé que al ser uno de los lenguajes más versátiles y fáciles de aprender, pues eran bien escojidos para este propósito. y antes de entrar al ilo yo ya sabía que le ivan a preguntar, ¿Cuánto pagas? jajajaja no juzgo que quieran ganarse unos eurillos por ahí, pero es obvio que la intención de la persona no era pagar xd. conociendo como conozco esta sala, yo ya no caería en hacer propuestas de esta naturaleza por aquí. ttalvez en otro lado haya gente que se pueda prestar a más. sin embargo, también entiendo que la gente necesita plata para sobrevivir xd

Pontuação: +0

12. little_fox,

No pretendas que hagan un favor como ese gratis tampoco xd. Bah igual ni idea de programar yo no, tipo puede ser sencillo como re difícil, pero cuando hay que aprovechar hay que aprovechar. Mira si hay que ser noble ni ahí bue.

Pontuação: +0

13. el-prevoste,

porqué no hay interfaces con python? ¿que le pica? ¿muerde? mira que el mundo de la informática es porculero como el mismo. por otro lado... preguntaría que cuanto pagas, pero como no tengo el tiempo ni las ganas... xd

Pontuação: +0

14. Rayo,

realmente el asunto es mucho más que solo que sean culeros, como dices. algunos por obsolencia, otros por gustos, practicidad...
Python es buenísimo para según que cosas, es versátil, es poderoso; en servidores es la competencia más directa a php y en el tema de machine learning y aprendizaje automático se pega unos putazos buenos con r.
Hay que entender que como se dijo ya en otro hilo, la informática no es exacta, por más que nos gustase que lo fuese.
Python es un lenguaje que es eficiente para big data y manejos de datos, pero para interfaces o interacción con el usuario hay lenguajes que lo hacen mejor y de forma más nativa, como el caso de c# en Windows, c para controladores, JavaScript en la web del lado del cliente....
la cosa no es tomar el lenguaje que esté de moda y programar todo allí, se toma la tecnología según lo que se necesite.
por otro lado, el programa es lo suficientemente complejo como para esperar remuneración. de lo contrario, se podría abrir un GitHub y que los que quisieran colaborar en el.

Pontuação: +0

15. gianella.delgado,

yo me muero por un complemento de NVDA recontra sencillo. se de programación un poco pero por más sencillo que es la idea que tengo no me veo capaz de crear lo que se me a ocurrido. no se si alguna vez ustedes vieron la suite de pedro diario, esa suite era genial pero lo más hermoso era el diario. tenía un espacio para crear páginas donde automáticamente en el primer campo se ponía la fecha y luego te dejaba escribir lo que querías, luego lo guardabas y en un solo espacio podías tener varios diarios, cada cual con contraseña o sin contraseña. y cada hoja la podías ver solo dando enter sobre la fecha o si no con tecla aplicaciones, tenías editar, y eliminar. e visto un complemento de diario en la tienda de NVDA pero no me convence porque esta un poco desordenada, no permite poner claves, parece más un anotador y no te pone las fechas automáticamente

Pontuação: +0

16. david-desktop,

Lunnaris13: ¡Hola a todos! Espero que estén bien. Quiero compartir con ustedes un proyecto en el que estoy trabajando....: ayer 20:59. de cuanto estamos hablando o de que manera puedo beneficiarme al ayudarte?

Pontuação: +0

17. cuervo-siniestro,

Ya hay gente significativamente más competente que tú, si tu educación y profesionalismo son proporcionales a tu competencia como programador, que se han ofrecido a ayudarla. Lo que te beneficiará más ahora mismo será dejar de abrir el cuadro de texto del foro para escribir burradas. Por cierto, bien te serviría escribir lo que quieres decir antes de pegar la cita en tu próximo post, de esa manera nos evitarás a todos la molestia de tener tus asombrosos comentarios altamente ricos en inteligencia y educación ocupando un valioso espacio en nuestros historiales que bien podrían ser llenados con posts más valiosos y útiles. david-desktop: Lunnaris13: ¡Hola a todos! Espero que estén bien. Quiero compartir con ustedes un proyecto en el que...: hace 52 minutos

Pontuação: +2

18. El_filosofaurio,

tremendo

Pontuação: +0

19. marcoML,

oye cuervo, a mí no me atacarás, verdad? cómo podrías atacar a carlitabonita.

Pontuação: +0

20. Coraline,

Ya duerman gente

Pontuação: +0

21. cuervo-siniestro,

Ah jeje no me hagas sonrojar, nuestra última conversación terminó en acoso para ti. ¿Recuerdas, verdad? Carlita06: oye cuervo, a mí no me atacarás, verdad? cómo podrías atacar a carlitabonita.: hace 0 minutos

Pontuação: +0

22. el-prevoste,

porqué tengo que leer estas cosas...

Pontuação: +1

23. katja ,

no sé, la sala siendo sala...

Pontuação: +0

24. Woss,

alguien programa una interfaz gráfica que haga parar el mundo, es que me quiero bajar

Pontuação: +0

25. Berlinnn,

Por qué nos enojamos o nos sorprendemos porque alguien quiera cobrar por prestar un servicio? Incluso si una persona invierte su tiempo, conocimiento y paciencia a favor mío y no me cobra un centavo, mal me sentiría yo si no le doy una contraprestación a cambio.
También me pregunto por qué tenemos que padecer de los odios personales que se tengan x usuarios? un genio nightmare-crow hablando de educación en el mismo post donde llena de insultos disfrazados a una persona. aplausos, aplausos.

Pontuação: +0

26. Rayo,

edito. no leí el post completo.

Pontuação: +0

Última edição por Rayo, Aug 17 2024 16:26:21

27. cuervo-siniestro,

¿Insultos disfrazados? Creo que alguien aquí debería hacerse revisar su regulador de la sensibilidad. Yo no condeno que alguien cobre por su trabajo, nadie más que tú sabe cuánto te costó llegar hasta donde estás y tener los conocimientos en x actividad que tienes. Simplemente estoy diciendo que hay formas educadas de pedir las cosas. Genio. Berlinnn: Por qué nos enojamos o nos sorprendemos porque alguien quiera cobrar por prestar un servicio? Incluso...: 29 minutes ago

Pontuação: +0

28. El_filosofaurio,

Deacuerdo. está bien que la gente quiera vivir de su trabajo, porque al final del día son horas que te gastas de tu tiempo y bueno, eso merece una recompensa, sea monetaria o de alguna otra forma beneficiosa. pero llegar y decir ah sí y en qué me beneficio yo al ayudarte muchacha, sin ni un toque de formalidad al menos, pues no sé. queda mal, al menos como yo lo veo. si vamos a hablar de formas y formas también deberíamos juzgar las formas de pedir las cosas.

Pontuação: +0

29. Chopin,

Resumo el post:
lunaris13 pide un programa, sin ofrecer presupuestos. Pocas personas harán algo así por amor al arte. Algunos programadores competentes le ofrecen su ayuda a cambio de un costo sin especificar. Lunaris13 tampoco tiene una idea de qué costo poner (podría asegurarlo). En ese ínterin, se debate sobre qué lenguajes son mejores para el desarrollo de interfaces gráficas. Luego, cuervo se pone en modo picante con una persona random del foro, para luego tirar insultos a diestra y siniestra. El hilo degenera rápidamente.

Pontuação: +1

Última edição por Chopin, Aug 17 2024 16:44:51

30. El_filosofaurio,

u arranca el bloque oso manzanoso usando palabras como ínterin. ndeaaaa.

Pontuação: +0

58 Mensagens, 2 Páginas:  1 2 ↖ Voltar a lista de tópicos

Responder ao tópico

Você deve estar conectado para poder postar.

Esqueceu sua senha? Criar uma conta