/ac/ - Animación y Cómics

Animata Autismus Quae Fines Transcendit

Página principal Catálogo Archivar Debajo Actualizar
Name
Options
Subject
Message

Max message length: 8001

Files

Max file size: 32.00 MB

Max files: 5

Supported file types: GIF, JPG, PNG, WebM, OGG, and more

E-mail
Password

(used to delete files and postings)

Misc

Recuerda leer las reglas

The backup domain is located at 8chan.se. .cc is a third fallback. TOR access can be found here, or you can access the TOR portal from the clearnet at Redchannit 2.0.

The server will be undergoing defense system testing Sunday and Monday. Expect brief outages or errors.
(Estamos probando la defensa contra el tercer género en el servidor el domingo y el lunes. Por favor, perdone cualquier interrupción.)


8chan.moe is a hobby project with no affiliation whatsoever to the administration of any other "8chan" site, past or present.

Reglas - Meta Nunca olvidar - Refugio Boards hispanos: 【 hispa / hm / pol 】【 ve / es / col / cc / mex 】 【 rol / vt / art / av / tec 】 Afiliados: 【 co

EEH /ac/ programa Anónimo 08/13/2022 (Sab) 04:45:59 6086
En el /ac/ del viejo hispachan había interés de los anons en programación y diseño web; parece que la base de usuarios del tablón se traslapaba bastante con los interesados en la informática, inclusive sacando adelante algunos proyectos como el booru, el webcommunity de Sin kids el chatbot a pesar de no tener codetags activados. Afortunadamente aquí si los tenemos, así que sería interesante tener un hilo para conversar sobre informática y los proyectos en los que estamos trabajando; así que podríamos comenzar así: >¿Qué lenguajes de programación conoces? >¿Qué proyectos te gustaría desarrollar? >¿En qué proyectos estás trabajando actualmente? También si les interesa postear en un board entéramente dedicado a informática pueden ocupar >>>/hispatec/ o >>>/t/
Bueno, esta tarde he estado trabajando en una aplicación de Python que genere notificaciones de posts nuevos en el tablón (que me urgía desde hace tiempo, detesto tener que actualizar la página a cada rato buscando mensajes nuevos), usa Requests para bajar la página, BeautifulSoup para hacer scrapping y Notify-pi para enviar notificaciones. No fue complicado, básicamente lo que hace es obtiene dos vectores, el primero con las IDs de todos los hilos en la primera página y el segundo con la ID del último post de cada uno de esos hilos; repite periódicamente el proceso y luego compara el resultado en cada iteración; si los vectores son diferentes (sea diferentes valores o en diferente orden) indica que hay mensajes nuevos y envía una notificación con un audio (el cuál le puse el ping de Messenger porque andaba nostálgico). Les dejo el código si desean probralo: https://rentry.co/zh9am La mayor limitación está en que si alguien elimina un mensaje, entonces el programa hace un falso negativo, creo que podría arreglarse comparando uno a uno los hilos y sus últimos mensajes en lugar de solo verificar si están en orden diferente; pero esto implicaría re-ordenar la estructura de datos del programa, cosa que sería irse por una tangente (esto básicamente lo vi como un ejercicio para familiarizarme con el webscrapping en el 8). Lo mismo ocurre si quisiéramos contar la cantidad de mensajes nuevos en cada iteración; implicaría bastante trabajo.
>>6086 No se una mierda pero siento curiosidad, tengo unas bases muy pobres de python y html5. Francamente el como fue avanzando Ghost Screen me hizo sentir de nuevo un genuino interes por volver a aprender y ponerlo aen práctica. ¿Por dónde comienzo?, ¿Que webs, libros, paginas o recursos recomiendan?. Primero me interesaría hacer una página simple en neocities por los kekes y de ahí ver si en un futuro puedo dar un aporte significativo al chan para poder colaborar.
>>6098 Mira, anon, mi linea de aprendizaje fue esta: Quería una página para el proyecto, así que comencé con lo más elemental: El reproductor junto al hilo; ambos en un embed. Me puse a averiguar página de webhosting gratuito sin anuncios y el neocities fue la mejor opción disponible para mi. Luego de haber hecho eso me pregunté que otras cosas me gustaría tener en la página: Un botón para esconder el reproductor, otro para cambiar la calidad, etc. Luego me ponía a buscar en Google y YouTube con qué funciones y herramientas podía hacer eso (una vez que conoces la herramienta o el tema, los resultados sobran), también pregunté en /wsr/ de 4chan; allá me ayudaron bastante. Para montar los bots de la radio seguí la misma secuencia lógica, comencé con algo sencillo (un reproductor musical) y veía que a medida que avanzaba mi conocimiento de las herramientas me permitía programar algo más complejo. Recuerdo que un anon también me ayudó mucho ordenando la página, con lo que él hizo pude extrapolar para hacer otras cosas, así que supongo que también tienes que andar comentando tus dudas a los anons, así probablemente alguien te las absuelva. Así que creo que todo se reduce en tener un proyecto o idea que verdaderamente te interese, luego investigar y preguntar bastante tanto acá como en otros lugares sobre como implementarla. >Primero me interesaría hacer una página simple en neocities por los kekes ¿Qué clase de página te gustaría hacer? >de ahí ver si en un futuro puedo dar un aporte significativo al chan para poder colaborar. En el tintero recuerdo que se quedó una aplicación con multisubida, threadwatcher, etc. Que comentó un anon en /ac/ antes del cierre. Respecto a este chan lo indispensable ahora mismo es traducir la front-end al español.
Estoy trabajando en portear a Hildabot al 8. Quizá más de un anon lo encuentre interesante, esto es lo que voy haciendo hasta ahora, permite postear desde la terminal de Python: import requests page = 'https://8chan.moe/replyThread.js?json=1' data = { "fileSha256" : "6cfb40e2c8e79f6a43d8e6584f32bd4a7fc64dcb1409f51ce8b8e47ff1f1b0fb", "fileMime" : "image/jpeg", "fileSpoiler" : "", "fileName": "kaisa.jpg", "boardUri": "ac", "threadId": "1", "message": "lmensaje de prueba" } cookies = { "captchaid":"62facef3530a5d603a4862dbnT1hdYDOeP/QLpSBOSP82UdmOUX7qqfi3sYHjkcv2ScASqm6apFxZXufkLq9258NeOvXJfAcb6YY9Y7dSSKIiQ==", "bypass":"62f898b12b70557f0d9cc0bf5Hh4ReQaTtIlZhth48320FSeowM5hiGwa3XziNB+WkyLKra9AMJA4K8zik9EPIjp9pcMQhiybP4mZ2DaCUt4qpYLf+nHVLvB/ykuaD3u4yGj7g1Tw9OVJfI8cBb7vd2qdHiA1uV8y2vbd12J461q6UTbUjS9ftUAoXkDP0Jhxy92TPHfMXPnFvmMmkvy2WOfeZGGoyb1IpqIDXjN2dqrfvM2Lz9ddDDHl37EKQoZ0gYBGoLrLIxSIBHiqa6nlL202Le9eHlP5WaFV2wrEqeZGQNEgEMaNcfhb75v+wfJhRU5irRyW+bJS9lQCOUMM7XuMmNT4+PJzHZGfIrNBSGogg==", "captchaexpiration":"Mon, 15 Aug 2022 22:58:47 GMT" } r = requests.post(page,data=data,cookies=cookies) print(r.text) Hildabot en Hispachan estaba hecha en Selenium Webdriver, aprovechando que Lynxchan está muchísimo más y mejor documentado decidí hacerlo en Requests y BS4 que es infinitamente más óptimo y sencillo que Selenium. Acá está la docu de Lynxchan por si alguien le interesa: https://gitgud.io/LynxChan/LynxChan/-/blob/master/doc/Form.txt Pero les resumo como funcionan las formas. La forma para postear un mensaje cuenta con los campos: fileName, boardUri, threadId y message; que son autoexplicativos; también hay otros para especificar la bandera, el nombre del usuario, pero para un posts normal si nada extravagante no son necesarios. Luego si quieres que el post tenga una imagen adjunta es un poco más complicado, pero definitivamente factible. Tienes que especificar los siguientes campos: >fileSha256 >fileMime >fileSpoiler >fileName El primero es una codificación criptográfica, convierte el filename del archivo a una secuencia de caracteres encodeados, hay librerías de Python que permiten hacer esa conversión. El segundo corresponde con el tipo de archivo que se usa, si es un jpg va "image/jpeg", si es un png va "image/png". El tercero si lleva vacío, entonces no pondrá la imagen en spoiler; caso contrario lo hará. El último es el nombre del archivo. La cuestión es esta: 8chan usa el Sha256 como referencia para subir la imagen, no el nombre de archivo. En otras palabras, si envías: data = { "fileSha256" : "aaa", "fileMime" : "image/jpeg", "fileSpoiler" : "", "fileName": "kaisa.jpg", } No se subirá la imagen, por mas que tengas "kaisa.jpg" dentro del folder en el que estás ejecutando el programa. El fileSha tiene que ser el del archivo que intentas subir, "fileName" es solo secundario. Para ello puedes hacer una conversión, en google encontré este código que me parece bastante útil: import hashlib filename = input("Enter the input file name: ") with open(filename,"rb") as f: bytes = f.read() # read entire file as bytes readable_hash = hashlib.sha256(bytes).hexdigest(); print(readable_hash) Que en el caso de "kaisa.jpg" su hash sería "6cfb40e2c8e79f6a43d8e6584f32bd4a7fc64dcb1409f51ce8b8e47ff1f1b0fb" y que una vez introducido en el campo funciona sube la imagen con total normalidad, como pueden ver aquí >>6341 Finalmente "cookies" corresponde con las galletas que usa 8chan. El 8 almacena tres galletas para postear con normalidad y no encontrarse con el captcha: Bypass, captchaid y captchaexpiration; los tres los puedes conseguir con una extensión de navegador para exportar galletas de preferencia. Según >>>/site/6515 hay planes para implementar una API para hacer bots que eludan el captcha completamente, pero por lo pronto, esta es la manera más sencilla de lidiar con el captcha del 8. >>6098 >Also Se me olvidaba. Tienes que aprender los elementos básicos de programación estructurada: >Operadores aritméticos (suma, resta, producto, división) >Operadores lógicos (Y, Ó, NO) >Flujo de control (Si, Si-Sino, Desde, mientras, hacer-mientras y En-caso) Este último es el más complicado, pero una vez que lo entiendes, lo mismo aplica a todos los lenguajes de programación, solo que con diferente semática. Yo lo aprendí con pseudocódigo en hoja y papel, pero tú puedes hacerlo en PSeINT o en C++; dependiendo de con qué estés más cómodo. Si tienes alguna duda, siéntete libre de preguntar EEH. Soy tu anon.
>>6086 >>¿Qué lenguajes de programación conoces? Normalmente trabajo con lenguajes de scripting (mas que nada Python, Javascript y Bash), pero también he hecho una que otra cosa con C#, Java, C, Lua, Perl y alguno mas que ahora no recuerdo (aunque a esos tengo tiempo que no los uso). No se si contara como lenguaje, pero también tengo experiencia con bases de datos (principalmente MySQL y SQLite). >>¿Qué proyectos te gustaría desarrollar? Tengo varios en una lista de pendientes, pero soy bastante desorganizado y muchos o están abandonados o nunca los inicie. >>¿En qué proyectos estás trabajando actualmente? No se si se lo puede considerar un proyecto, pero en estos momentos estoy probando Github Copilot (hice un hilo en >>>/hispatec/200 por si alguien tiene curiosidad). También estoy trabajando en unos scripts para el chan (uno ya lo tengo listo, otro esta a medias y hay un par mas que tengo pensado hacer eventualmente). >>6087 >aplicación de Python que genere notificaciones de posts nuevos en el tablón ¿Es algo así como lo que tenia Hispa cuando mostraba un contador de posts nuevos en los enlaces de los tablones? >BeautifulSoup para hacer scrapping >si alguien elimina un mensaje, entonces el programa hace un falso negativo Quizás te sea mas fácil trabajar con https://8chan.moe/ac/catalog.json (es lo que se usa para cargar el catalogo lateral). Debería ser menos problemático para parsear y mas rápido de descargar que el HTML del tablón. >>6109 >aplicación con multisubida En algún momento pensaba hacerle ingeniería inversa al programa original (o al menos intentarlo) para tener una versión de código abierto que sea funcional con el sitio. >>6342 Quizás y ya lo sabias, pero los hilos también se pueden acceder a través de JSON (algo que puede ser útil para obtener los posts nuevos mas rápido). Por ejemplo, para este seria https://8chan.moe/ac/res/6086.json
>>6359 >Más fácil con el catálogo lateral >Los hilos se pueden acceder como un json No sabía nada de eso, anon; usando esas herramientas podría obtener un resultado inclusive más sencillo que no requiera de BS4. El Bot de hispa era funcional, pero ahora estoy tratando de minimizar la cantidad de librerías externas que usa para hacerlo más eficiente y proyectarme a correrlo en una placa de raspberry algún día (o sino en una máquina virtual)
En base a lo que >>6359 comentó, decidí hacer una nueva versión del notificador que use solo post requests. Acá se las dejo: from notifypy import Notify import requests import time global board_info def get_replies(thread): if "postCount" in thread: return thread["postCount"] else: return 0 def get_info(url): threads = requests.get(url) array = [] if (len(threads.json())>=1): threads_ids = [] replies = [] for thread in threads.json(): if (thread["page"]<=3): threads_ids.append(thread["threadId"]) replies.append(get_replies(thread)) array.append(threads_ids) array.append(replies) return array def notification(): notification = Notify() notification.title = "¡Mensajes nuevos!" notification.message = "Hay mensajes nuevos en /ac/" notification.icon = "C:\\proyectos_python\\icon.ico" notification.audio = "C:\\proyectos_python\\ping.wav" notification.send() def check_new(threadId,replies): global board_info logic = False if (len(board_info[0])>=1): for i in range(len(board_info[0])): if(board_info[0][i]==threadId): if(board_info[1][i]<replies): logic = True board_info[1][i]=replies return logic board_info[0].append(threadId) board_info[1].append(replies) return True url = "https://8chan.moe/ac/catalog.json" board_info = get_info(url) while True: time.sleep(10) threads = requests.get(url) if(len(threads.json())>=1): for thread in threads.json(): if (thread["page"]<=3): if (check_new(thread["threadId"],get_replies(thread))): notification() No debería ser difícil adaptar esto a JavaScript para que muestre sonidos y notificaciones dentro de la propia página.
Noticias en el horizonte. Logré portear exitosamente a Hildabot a Lynxchan, mañana en la tarde podría dejarla corriendo durante unas horas para que se diviertan con ella y puedan probarlo; por lo pronto es solo texto, todavía no me las he ingeniado para subir archivos desde Python. Si algo tengo que comentar es que es un deleite trabajar con Lynxchan, por mucho superior a la versión ultra parchada de Kusaba X con la que contaba Hispachan; principalmente porque la documentación y los jsons disponibles hacen buscar, encontrr y procesar la información necesaria infinitamente más sencillo. Si alguien quiere ver el feo código con el que estoy trabajando me avisan. Tengo pensado re-escribir los intents (la comida del bot) completamente desde cero, puesto que está tirando demasiados falsos positivos (problema que vengo arrastrando desde tiempos de Hispa)
>>6769 Gran trabajo negrito.
Noticias en el horizonte, por fin me las arreglé para poder cargar imágenes desde el script de Python. Pronto tendremos la segunda prueba del bot, esta vez con reaction faces y toda la cosa.
¿Alguien sabe de algún modelo sencillo de chatbot? he intentado fine-tunear GPT-J con un dataset de frases de Hilda y comentarios de /ac/, pero estoy más perdido que la mamá de Marco.
(49.79 KB 800x616 160478709983.jpg)

¿Qué lenguaje de programación recomiendan para alguien que busca la eficiencia de C y la versatilidad de importación de librerías de Python? me gusta C; sin embargo importar librerías externas es todo un tedio, además de que no hay mucho estado del arte, al menos para las cosas que yo hago. Me gusta lo práctico de importar código externo en Python pero no puedo evitar sentir que es un gusto culposo y una mala práctica, puesto que no tengo manera de controlar lo que está sucediendo dentro de las funciones importadas o si el proceso es óptimo. Python es más para prototipar cosas en lugar de abordar proyectos seriamente.
>>7787 >¿Qué lenguaje de programación recomiendan para alguien que busca la eficiencia de C y la versatilidad de importación de librerías de Python? Quizás Nim te interese. Según https://nim-lang.org/features.html tiene un sistema de paquetes llamado Nimble desde el cual puedes instalar módulos y luego hacer un "import loquesea" en un proyecto, o hacer un binding con librerías de C/C++ directamente. Otra opción seria probar con alguno de estos manejadores de paquetes para C/C++: https://github.com/clibs/clib https://conan.io/ https://github.com/pfultz2/cget https://github.com/cpp-pm/hunter https://spack.io/ https://software-network.org/


Forms
Delete
Report
Quick Reply