En mi último proyecto en C he querido reunir todo lo que he aprendido con
las interfaces gráficas de texto y darle uso conectándome a la API de meneame.
Soy usuario de meneame desde sus inicios y éste es mi guiño personal por estar
ahí durante todos estos años.
Por ahora es una DEMO de lo que podría llegar a
ser. El programa descarga las 100 noticias que aparecen en portada haciendo un
CURL request a "https://meneame.net/api/list.php?status=published".
Luego parsea
la información recibida y la muestra en un programa con una interfaz de texto
retro.
No es mi mejor código, pero está hecho con mucho
cariño :)
Código en:
La explicación de todos los módulos a continuación:
(Aumentando en
orden de abstracción hasta llegar a main.c)
________________
NIVEL 0: (BASE)
- rterm.c : Con las
secuencias de escape ANSI para dar color a nuestro output en la terminal
- tm.c
: Crea un timer de milisegundos para animaciones
- fileop.c: Un módulo que ayuda
para operaciones con archivos
_______________
NIVEL 1: (DEPENDENCIAS)
- download.c : Depende de
libcurl. Hacemos la llamada a la API de meneame y guardamos su contenido en un
fichero
- parse.c : Parsea el contenido del fichero y lo volcamos a una array.
Quitamos las secuencias de unicode y parsear acentps del español
_______________
NIVEL 2:
(ABSTACCIONES NIVEL BAJO)
- keyb.c : Crea una pequeña abstracción del teclado
para leer las teclas con secuencia de escape \e en Linux
- scbuf.c (1) : Crea
una capa intermedia entre el display y el terminal a modo de doble buffer de
pantalla - listbox.c (2) : Crea una lista con un selector con scroll horizontal
_______________
NIVEL 3: (ABSTACCIONES NIVEL ALTO)
- ui.c : Diferentes herramientas como textbox
y ventana para la interfaz de usuario
- global.h y about.h : mensajes de texto y
variables globales
_______________
main.c: Programa principal
No comments:
Post a Comment