/ac/ - Animación e historietas

Ministerio de /ac/osadores /ac/uaticos

Página principal Catálogo Archivar Bajar Actualizar
Opciones
Título
Mensaje

Máximo de caracteres: 12000

archivos

Tamaño máximo de archivo: 32.00 MB

Tamaño máximo de archivo en total: 50.00 MB

Numero máximo de archivos: 5

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

Correo
Clave

(usado para eliminar archivos y mensajes)

Misc

Recuerda leer las reglas

The backup domains are located at 8chan.se and 8chan.cc. TOR access can be found here, or you can access the TOR portal from the clearnet at Redchannit 3.0.

Pantalla Fantasma
Joker 2 - La Venganza de Batichica


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 Contacto: acolitosadmin@protonmail.com Afiliados: 【 co / edit 】 Boards hispanos: 【 hispa / pol 】【 ve / ar / mex / pe】 【 rol / arte / av

EEH /ac/ programa Anónimo 13/08/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
[Expand Post]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
[Expand Post] 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/
Noticias en el horizonte; actualizaron 8chanmoe, con la nueva configuración hace el uso necesario de un cookie para poder acceder al contenido; de lo contrario la página rebota. Si desean jalar contenido de los jsons de 8moe entonces van a tener que entregar la galleta 'splash':'1' en el caso de Python, con esto: import requests url = 'https://8chan.moe/ac/res/9611.json' cookies = {'splash':'1'} r = requests.get(url,cookies=cookies).json() print(r) Es más que suficiente. Estoy trabajando en un webscrapper con Python para descargar hilos de /ac/ localmente y luego poder subirlos a alguna página externa; creo que un negro hizo algo parecido con regedix, pero como no soy mago no logro entenderlo.
Estoy testeando algunas cosas, no me hagan caso.
(1007.79 KB 1018x448 AmusementPark.png)

Historieta #0: AmusementPark.png
(1.05 MB 1037x444 BloodPressure.png)

Historieta #1: BloodPressure.png
>>10976 >>10977 creo que te equivocaste de hilo
>>10980 No. Escribí un programa que cuelga una historieta al día de manera automática y la estaba probando, este es el código: import json import requests import os from datetime import date from mimetypes import guess_type from hashlib import sha256 #Jala información del hilo def get_info(url): info = { "threadId":"", "board":"" } data = requests.get(url,cookies={'splash':'1'}).json() info["threadId"]=data["threadId"] info["board"]=data["boardUri"] return info #URL del hilo donde se subirán las imágenes (con .json en lugar de .html) url = 'https://8chan.moe/ac/res/10978.json' #carpeta donde están las imágenes directory = r'C:\Users\Imágenes' #Fecha en la que se colgó la primera imagen en formato año-mes-día first_date = date(2022,11,6) today = date.today() index = (today-first_date).days thread_info=get_info(url) #Información del mensaje data = { "fileSha256" : "", "fileMime" : "", "fileSpoiler" : "", "fileName" : "", "boardUri" : thread_info["board"], "threadId" : thread_info["threadId"], "message" : "" } #Galletas; necesario para enviar el mensaje with open('cookies.json','r') as json_file: cookies = json.load(json_file) #Función que dado un tablón, galletas e índice (contador de cuantos días han pasado desde el primer mensaje hace un post def make_post(board,cookies,index): page = 'https://8chan.moe/replyThread.js?json='+board filenames = os.listdir(directory) filename=filenames[index] ruta=directory+"\\"+filename with open(ruta, "rb") as f: file = f.read()
[Expand Post] files = { "files": (ruta,file,guess_type(filename)[0]) } data["fileSha256"] = sha256(file).hexdigest() data["fileMime"] = guess_type(filename)[0] data["fileName"] = filename data["message"]="Historieta #"+str(index)+": "+filename r = requests.post(page,data=data,cookies=cookies,files=files) response = json.loads(r.text) return response["status"] #Realización del posteo. Considera eventualidades como que la página esté en mantenimiento o que las galletas estén desactualizadas intentos = 0 logico = False while (intentos <= 5 and logico == False): response = make_post(thread_info["board"],cookies,index) if response == "ok": logico = True print ("Se envió una imagen") elif response == "error": if intentos < 5: intentos = intentos + 1 print ("error enviando la imagen. Intentando de nuevo") time.sleep(10) else: print ("se agotaron los intentos") elif response == "maintenance": logico = True print ("Sitio bajo mantenimiento") elif response == "bypassable": print ("captcha expirado, actualice el captcha:") cookies["captchaid"] = input("Ingrese captchaid: ") cookies["bypass"] = input("Ingrese bypass: ") cookies["captchaexpiration"] = input("Ingrese captchaexpiration: ") with open("cookies.json", "w") as json_file: json.dump(cookies, json_file) El json de las galletas tiene esta forma: {"captchaid": "", "bypass": "", "captchaexpiration": "", "splash": "1" } Lo dejas en la misma carpeta donde está el programa, está escrito para manejar la eventualidad de que esté vacío; los valores los obtienes con un exportador de galletas, en chrome yo tengo la extensión "cookie editor", ahí vas a encontrar los campos "captchaid", etc. Luego para automatizarlo si estás en windows puedes usar el programador de tareas para que corra una vez cuando se encienda el ordenador. La misma lógica se puede usar para hacer hilos diarios de otras tiras cómicas, Snoopy o Mafalda por ejemplo.
Alyssa Sapire Promoted To Oversee Content At Disney Junior >Sapire and her newly-appointed team will oversee development, current and acquired programming for linear and streaming. https://www.cartoonbrew.com/executives/alyssa-sapire-promoted-disney-branded-television-222931.html
Eso fue mucho más fácil de lo que esperaba.
Alyssa Sapire Promoted To Oversee Content At Disney Junior >Sapire and her newly-appointed team will oversee development, current and acquired programming for linear and streaming. https://www.cartoonbrew.com/executives/alyssa-sapire-promoted-disney-branded-television-222931.html
Alyssa Sapire Promoted To Oversee Content At Disney Junior >Sapire and her newly-appointed team will oversee development, current and acquired programming for linear and streaming. https://www.cartoonbrew.com/executives/alyssa-sapire-promoted-disney-branded-television-222931.html
Alyssa Sapire Promoted To Oversee Content At Disney Junior >Sapire and her newly-appointed team will oversee development, current and acquired programming for linear and streaming. https://www.cartoonbrew.com/executives/alyssa-sapire-promoted-disney-branded-television-222931.html
Hora de finetunear un chatbot con shitposts de /ac/. y ver cuanto tiempo tardan los de character ai en mandarnos a la mierda.
>>6438 >No debería ser difícil adaptar esto a JavaScript Otra opción seria adaptar lo de https://www.hispasexy.org/lib/javascript/notificaciones.js y https://www.hispasexy.org/lib/javascript/postload.js para que funcione aquí pero quitándole las mierdas que pueden dar problemas en algunos navegadores (como el uso de customElements que era una queja habitual en Hispachan). De todos modos las notificaciones en Javascript no parecen algo trivial por lo que quizás seria mejor pedirse a Codexx que las implemente. Por cierto, ¿soy el único al que le cuesta darle "sentido" a ese Javascript cuando se le da un vistazo (y luego de desminificarlo) o es que simplemente esta mal estructurado? >>6769 >Si alguien quiere ver el feo código con el que estoy trabajando me avisan. Siempre puedes subirlo a un repositorio como los de https://en.wikipedia.org/wiki/Comparison_of_source-code-hosting_facilities si quieres hacerlo mas accesible. >>7499 >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. Puede que lo de https://betterprogramming.pub/fine-tuning-gpt-j-6b-on-google-colab-or-equivalent-desktop-or-server-gpu-b6dc849cb205 te sea útil. >>10988 >ruta=directory+"\\"+filename ¿No seria mejor usar os.path.join() para concatenar rutas de archivos? De ese modo no debería darte problemas si algún día quieres correr el código desde Linux. >>11098 >todavía tengo que portear el descargador de vidéos de YouTube No se que estabas usando antes, pero te recomiendo yt-dlp si no quieres complicarte tanto con eso. >>11095 >estuve leyendo su faq y términos de servicio y se ve que está re-soya con el contenido ofensivo. >>11213 >ver cuanto tiempo tardan los de character ai en mandarnos a la mierda. Por si las dudas seria mejor que vayas viendo de hacerte una versión local para cuando te baneen de ahí (por que eventualmente pasara, solo falta saber cuando). Según https://www.reddit.com/r/AIDungeon/comments/n2kyox/ive_struck_ai_gold_finally_an_alternative_to_aid/ usaron algo llamado Megatron 11b para entrenar a las inteligencias artificiales del sitio, por lo que en teoría debería ser factible tener algo similar sin depender de un tercero (salvo por Google Collab en caso de que no cuentes con una tarjeta gráfica decente). >finetunear un chatbot con shitposts de /ac/ ¿Vas a incluir también lo de estos hilos de Hildarmonia?: * Primera edición de prueba: https://hispafiles.ru/ac/res/205218.html ( http://archive.today/2022.02.11-135024/https://www.hispachan.org/ac/res/205218.html ) * Segunda edición de prueba: https://hispafiles.ru/ac/res/205791.html ( http://archive.today/2022.03.02-141732/https://www.hispachan.org/ac/res/205791.html ) * Primera Edición oficial: https://hispafiles.ru/ac/res/206072.html ( http://archive.today/2022.02.11-164325/https://www.hispachan.org/ac/res/206072.html ) * Segunda edición (aunque aparece como la primera): https://hispafiles.ru/ac/res/206914.html ( http://archive.today/2022.02.22-074052/https://www.hispachan.org/ac/res/206914.html ) * Ella siempre estuvo a la vuelta de la esquina (supongo que es la tercera edición): https://hispafiles.ru/ac/res/207252.html ( http://archive.today/2022.03.02-142220/https://www.hispachan.org/ac/res/207252.html ) * Cuarta edición: https://hispafiles.ru/ac/res/207815.html ( http://archive.today/2022.04.05-144634/https://www.hispachan.org/ac/res/207815.html ) * Quinta edición: https://hispafiles.ru/ac/res/209265.html ( http://archive.today/2022.03.06-042829/https://www.hispachan.org/ac/res/209265.html ) * Sexta edición: https://hispafiles.ru/ac/res/210211.html ( http://archive.today/2022.03.24-131453/https://www.hispachan.org/ac/res/210211.html ) * Séptima Edición: https://hispafiles.ru/ac/res/211231.html ( http://archive.today/2022.03.30-122328/https://www.hispachan.org/ac/res/211231.html ) * Octava edición: https://hispafiles.ru/ac/res/212530.html ( http://archive.today/2022.04.05-150641/https://www.hispachan.org/ac/res/212530.html ) * Novena edición: https://hispafiles.ru/ac/res/214583.html ( http://archive.today/2022.04.19-134344/https://www.hispachan.org/ac/res/214583.html ) * [Ghost Screen]: Séptima edición (mención honorífica ya que al parecer estuviste haciendo pruebas con el bot ahí) https://hispafiles.ru/ac/res/207084.html ( http://archive.today/2022.03.02-152732/https://www.hispachan.org/ac/res/207084.html ) De paso te dejo este JSON con frases de un bot básico para chat que me baje hace mas de 10 años por si quieres darle algo de "sabor" a Hildabot. Las frases en cuestión están divididas en las siguientes categorías: • Colmos • Chistes • Insultos del tipo: •• "Eres un tonto X porque Y" •• "Tu mama es tan X que Y" •• Otros mas genéricos (por alguna razón la mayoría están en chileno) • "Eres un IRCadicto si" seguido de un mensaje (¿tal vez se podría cambiar a /ac/dicto y adaptar los mensajes al contexto del chan?). • Citas y frases • Tres subcategorías de consejos (ni idea de por que) • Principios, leyes (como las de Murphy) y cosas así.
[Expand Post]"¿Que le dijo X a Y?""No es lo mismo X que Y" • Graffitis • Errores de Windows (puedes omitirlos o ponerte creativo con eso) • Piropos (aunque no me imagino que tengan mucha utilidad en un bot que emula a una loli niña de 10 años) El bot también tiene estos dibujos ASCII, pero como no estaba seguro de si incluirlos o no en el JSON, te los dejo por aquí si les quieres dar algún uso: Osito: (O)_(O) (=°;°=) ('')_('') Conejito (\_/) (=';'=) ('')_('') Ataque trueno |\___/| (o^·^o) o O Pikashu ( Ataque impact-trueno! ) _¯¯¯¯¯¯¯¯¯¯\¯) <--- Por el poder del pirulo (_)_) ____________ te la meto por el culo! Pikachu /__/ (o^;^o) ('')__('') Por ultimo, hay algunas frases que tienen el carácter "\u0002" que, sino mal recuerdo, se usa para resaltar el texto en el IRC (no estoy seguro si este en especifico era para poner negritas o que aparezca de cierto color) pero se pueden quitar fácilmente con un buscar y reemplazar.
(102.15 KB 901x1751 UML is my passion.jpg)

>>11231 >Por cierto, ¿soy el único al que le cuesta darle "sentido" a ese Javascript cuando se le da un vistazo (y luego de desminificarlo) o es que simplemente esta mal estructurado? Las mezclas entre español e inglés siempre me parecieron curiosas del script de Hispa, por ejemplo nombrefile, aunque lo verdaderamente impresionante es que nunca usaron CSS en la página principal ni en los encabezados; sino estilo dentro de las propias etiquetas. Por eso tardaron tantos años en que el estilo también afectaran a la página principal. >Puede que lo de https://betterprogramming.pub/fine-tuning-gpt-j-6b-on-google-colab-or-equivalent-desktop-or-server-gpu-b6dc849cb205 te sea útil. Gracias, aunque por lo pronto creo que usaré character ai, a ver cuanto tiempo nos podemos quedar ahí. >De paso te dejo este JSON con frases de un bot básico para chat que me baje hace mas de 10 años por si es darle algo de "sabor" a Hildabot ¿Eso es del Bai? para serte franco no quiero copiar algo que ya hicieron en otro IB, prefiero montar las cosas por mi propia cuenta. >¿Vas a incluir también lo de estos hilos de Hildarmonia? Eso sería para otro proyecto tangente; la idea sería entrenar una red neural para que postee como un acólito y luego dejarla suelta en el 8 a ver cuanto tiempo tardan los anons en darse cuenta, similar a: https://youtu.be/efPrtcLdcdM Por lo pronto, todos los mensajes que no recibieron respuesta apropiada en los hilos anteriores ya están dentro del diccionario de Hildabot que acabo de simplificar y meter dentro del nuevo diccionario que permite identificar emociones para adjuntar la RF apropiada. También aprovecho para compartir el flujograma del bot; si desean que explique exáctamente como Hildabot obtiene la información del hilo, como obtiene los últimos mensajes, como detecta que la citaron, etc. Me avisan. Creo que eventualmente crearé una repo con varias funciones de Python para hacer esas acciones en Lynxchan. Más bien, sería genial si pudieran proveerme de un dataframe de mensajes y la emoción que transmiten con el objetivo de afinar el detectador de emociones que usa Hildabot.
Por cierto, si se preguntan por qué hago una distinción si la emoción del poster cae como "grosero" o "pedo" mensajes como estos del character ai son la razón. En lo que finetuneo el character ai quiero que mi niña sepa defenderse de los depravados. Quizá si algún día logro que el character ai sea lo suficientemente consistente podría quitarlo, pero por lo pronto me parece que está bien así.
>>11234 >¿Eso es del Bai? Ni idea, las frases las saque de un script para Eggdrop que en su momento me lo baje de alguna pagina random (y que seguramente ya ni exista). Si tienes curiosidad puedes ver el script original en https://github.com/muskIRC/tcl-eggdrop/blob/main/diversion.tcl >dataframe de mensajes y la emoción que transmiten con el objetivo de afinar el detectador de emociones que usa Hildabot. Dando una vuelta por Hugging Face me encontré con https://github.com/fmplaza/EmoEvent También esta https://huggingface.co/datasets/anton-l/superb pero parece un programa ya hecho mas que un dataset. Imagino que en https://www.kaggle.com/datasets debe haber algo mas, pero no tiene filtros decentes para simplificar la búsqueda. >>11235 >quiero que mi niña sepa defenderse de los depravados Estuve leyendo el nuevo hilo de pruebas y se volvió una adolescente medio edgy se la notaba muy a la defensiva y dando muchos falsos positivos. Tal vez para la próxima podrías desactivar eso y dejar que los negros hagan de las suyas para ver como resulta (total, las reglas del chan no dicen nada sobre que no se pueda pedrosear a un bot). Además de que seria una buena forma de hacerte con un dataset de "emociones pedras".
>>11403 >me encontré con https://github.com/fmplaza/EmoEvent Esto será de mucha ayuda, gracias anon. >Imagino que en https://www.kaggle.com/datasets debe haber algo mas, pero no tiene filtros decentes para simplificar la búsqueda. No fue difícil de filtrar; solo buscar dentro de la categoría de NLP y buscar "emotion"; el problema es que no se puede filtrar por idioma, pero solo hay 26 datasets de emociones para NLP así que tampoco creo que sea difícil buscar uno por uno. >se la notaba muy a la defensiva y dando muchos falsos positivos Es raro que las mismas expresiones como "¿Estás feliz?" Que explícitamente puse dentro de patrón de "feliz" luego tiraba "pedo" o "agresivo", debí haber cometido un traspié entrenando el modelo o tal vez cargué el modelo incorrecto, ya veré luego que sucedió. >Tal vez para la próxima podrías desactivar eso y dejar que los negros hagan de las suyas para ver como resulta Eso haré. Mañana en la tarde hago otra prueba.
El 15.ai anda caído pero el uberduck si funciona y tiene una API, me pregunto si podré enchufarla a Hildabot para que hable espanglish horrible.
>>11663 ¿Que te parecería hacerlo en español (eso suponiendo que la serie cuente con un buen doblaje)? Estuve viendo que https://fakeyou.com (el cual tiene mas de 200 voces en español) dispone de una API. Eso si, no hay un sintetizador para Hilda por lo que toca hacer uno desde cero y para lo cual hay que pasar por su Discord antes de poder hacer nada (cuando lo ideal seria contar con las instrucciones directamente para luego enviarles el resultado por email o algo así). Aunque si no quieres estar preocupándote de otro sitio que te pueda echar a patadas o de que eliminen la voz de Hilda (tal como paso con la de Dross y algunos personajes de Dragon Ball hace un tiempo) entonces podrías hacerlo de manera local. Curiosamente hace unos meses comente lo siguiente en Hispachan: >[...] parece que muchos de los modelos en español [de FakeYou] usan Tacotron 2 para generar las voces. Si alguien tiene ganas de experimentar con esto puede comenzar revisando lo de https://nix-united.com/blog/neural-network-speech-synthesis-using-the-tacotron-2-architecture-or-get-alignment-or-die-tryin/ junto con http://www.ptolomeo.unam.mx:8080/xmlui/bitstream/handle/132.248.52.100/17057/Tesis.pdf que contiene detalles sobre síntesis de voz en español de Latinoamérica. Por lo que si te interesa ahí tienes otro proyecto con el cual mantenerte entretenido.
>>11671 Hace unos años intenté hacer un sintetizador de voz para un proyecto de un curso, pero al final no presenté nada, lol. Igual, el tema me pareció bastante entretenido; quizá el verano del año que viene me dedique a intentar hacer algo así, a ver si mi CPU puede manejarlo. >fakeyou Había olvidado de esta página. En otro chan estuvieron hablando de eso porque hicieron un modelo en base a los discursos de Boric, el presidente de Chile y se pusieron a hacerle memes, cosa que fue bastante divertida de leer. Hace un par de años diseñé el dataset de Claire de The Summoning y se lo envié a los de 15.ai, lamentablemente esa página para caída y su único programanon parece que tiene severo autismo (es brony, después de todo), así que quedó en el limbo. Leeré esa tesis de la unam cuando tenga tiempo; espero poder desarrollar algo en base a ello. También me pondré en contacto al discord de esa página; si a los anons les interesa el tema, entonces entre todos podremos hacer el dataset de diálogos de Hilda.
Modifiqué un pequeño error, no afectaba demasiado al output pero EN SERIO me estaba cosquilleando el autismo. Básicamente el chat no permite ingresar ENTER, cuando se escribe un salto de linea envía el mensaje; cuando el bot recibía un mensaje del tipo eres tonta >texto texo texto ¿Ves como no puedes escribir un mensaje coherente? El character ai recibía una tecla ENTER, con lo que enviaba el mensaje incompleto y antes de lo debido. Lo arreglé fácilmente añadiendo texto.replace('\n',' ') para reemplazar los saltos de linea con espacios. También podría modificar mi función que formatea el mensaje para que convierta los saltos de linea en espacios directamente, pero tengo planes para hacer otras cosas con esa función. Por cierto, Kaisa se rompió, se puso a decir incoherencia, pensé que más de uno encontrará kekeantes las estupideces que se puso a decir.
>>12836 >Kaisa be like
Acá hay un proyecto interesante en el que voy a estar trabajando. El Kobold AI es una red neural de escritura creativa, parecido a Ai Dungeon o a Character ai solo que software libre y debido a ello tiene muchos modelos de donde elegir diseñados por la propia comunidad. Estoy tratando de desplegar un modelo chiquito localmente y conectarlo a Lynxchan de la misma manera que funciona Hildabot. Esto podría tener muchas aplicaciones: >Una partida de rol con un dungeon master de inteligencia artificial >Chatbots más elaborados >Proyectos de escritura colectiva creativa (similar a los que solía haber en el viejo /acme/) Creo que haré también un hilo de aventuras de texto a ver cuantos acólitos están interesados en la idea, creo que esto podría ser una herramienta genial la cuál no solo nosotros podamos sacarle provecho, espero poder tener tiempo en los próximos meses para finalmente subir todos mis proyectos a alguna página como gitgud.
Les dejo un avance de mi proyecto. Creé una interfaz que traduce la entrada y salida del kobold hacia la terminal de Python, también desplegué un modelo chiquito en mi computadora, no es la gran cosa, pero en mi equipo corre. Lo siguiente sería conectarlo al 8 usando las herramientas que ya les mostré con los otros bots.
>>6086 Hace unas semanas hice este script que muestra la distribución de los posts por hora publicados en >>>/hispachan/, pero aprovecho para dejarlo aquí en caso de que le quieran dar algún uso (como el negro de >>14310 que andaba preguntando si se podía ver la cantidad de mensajes por día en un tablón). nombre_tablon="ac"; horas_posteo=$( # Obtenemos los identificadores de cada hilo del tablón e iteramos sobre ellos for id_hilo in $(curl --header 'Cookie: splash=1' --referer '8chan.moe' https://8chan.moe/$nombre_tablon/catalog.json | jq ".[].threadId"); do # Obtenemos la fecha de creación del hilo y los posts del mismo e iteramos sobre estos for fecha_posteo in $(curl --header 'Cookie: splash=1' --referer '8chan.moe' https://8chan.moe/$nombre_tablon/res/$id_hilo.json | jq '.creation, .posts[].creation' | sed 's/"//g') do # Mostramos la hora en UTC (formato de dos dígitos) de cada fecha date --utc "+%H" --date=$fecha_posteo; done done ); # Iteramos sobre las horas del día echo "hora,cantidad de posts" for hora in $(echo {00..23}); do # Contamos la cantidad de veces que aparece $hora en la lista de $horas_posteo echo $hora,$(echo "$horas_posteo" | grep $hora | wc -l); done El script en cuestión devuelve un csv como este: hora,cantidad de posts 00,1820 01,1732 02,1647 03,1589 04,1073 05,614 06,280 07,176 08,93 09,80 10,52 11,128 12,120 13,235 14,292 15,393 16,431 17,589 18,636 19,617 20,668 21,815 22,855 23,941
[Expand Post]El cual se puede pasar a Excel u otro programa para hacer gráficas. Sobre las gráficas, se me ocurrió hacer una para /ac/ por curiosidad y al parecer ambos tablones tienen mas actividad por las mismas horas. >>12836 >el chat no permite ingresar ENTER, cuando se escribe un salto de linea envía el mensaje ¿Y lo que estas (o mas bien estabas) usando para interactuar con Character AI no tiene algún modo de emular o insertar un Alt + Enter en el texto?
>>16313 Intenté probar el script pero me sale este error: curl: (3) URL using bad/illegal format or missing URL ¿Hay alguna forma de solucionarlo?
>>16313 Que coincidencia, yo también he estado trabajando en un contador de estadísticas para el chan, solo que yo usé Python en lugar de bash para encontrar los datos. Ojo, algo que debes de tomar en cuenta es que, dado que el IB permite multi-imagen a diferencia de Hispachan el número de mensajes está inherentemente reducido. Por lo que si vas a comparar con números antes del cierre es útil tener dos variables: >Número de mensajes reales >Números de mensajes potenciales El segundo se calcula contando el máximo entre 1 y la cantidad de archivos adjuntados por el poster. Si estuviéramos en tiempos de Hispachan, un mensaje con cinco archivos habrían sido repartidos en cinco mensajes diferentes; eso sucedía con las horas del cuento que inflan bastante los números del tablón (especialmente en el 2016-2017 épocas del viejo /co/ donde de 100 mensajes 80 eran de las horas del cuento)
Para los que usen el script para descargar hilos (>>13568) les quería avisar que hace unos días cambiaron la cookie del chan (de nuevo), posiblemente debido a >>>/site/7964. Basta con reemplazar disclaimer por disclaimer1 para que vuelva a funcionar, aunque si quieren probar con una solución algo mas robusta (o eso quiero creer) entonces en lugar de "Cookie: disclaimer1=1" y similares, pueden poner esto en su lugar: 'Cookie: '"$(echo {splash,disclaimer}{,{0..141}}=1";")" Que vendría siendo el equivalente bashiano de esto: 'Cookie: splash=1; splash0=1; splash1=1; splash2=1; splash3=1; ... disclaimer139=1; disclaimer140=1; disclaimer141=1;' Ahora bien, ¿por que el contador llega hasta 141 en lugar de 999? Pues por que si excedo eso el servidor devuelve "Error 400: Bad Request" ya que las cookies no pueden pesar mas de 4096 bytes.
>>19380 Ah si, noté eso mientras ocupana el Jucikaposter. No fue difícil de resolver, probablemente sea debido a los ataques de Sylvia así que tampoco creo que tenga sentido meter una cantidad deliberada de disclaimers a las galletas. Más bien, tengo que pensar una manera de evitar exportar las galletas manualmente porque esa cosa es harto insegura. Si alguien sabe de alguna idea me comenta; por ejemplo, que el script muestee una ventana con el captcha o algo por el estilo.
>>19385 >probablemente sea debido a los ataques de Sylvia Igual no deja de ser curioso que cambiaran la cookie pocos días después de que alguien mencionara que se podían guardar paginas en archive.is sin tener que usar archive.8chan.moe. >que el script muestee una ventana con el captcha o algo por el estilo. Pues no debería ser difícil hacer un cuadro de dialogo en PyGTK o PyQt (o de ultima en Tkinter sino quieres instalar cosas extra) para pedir el código del captcha cuando haga falta. Eso si, tocaría revisar las peticiones que se hacen al servidor cuando vas a postear por primera vez desde el navegador. El tema seria como emular el Proof of Work desde Python (el cual, si estoy en lo correcto, es necesario para generar la cookie de bypass) aunque revisando un poco en https://gitgud.io/8chan/Aleph/-/blob/master/static/js/bypassUtils.js#L46 parece haber un modo de que el sitio devuelva un hash y obtener el código de bypass con https://gitgud.io/LynxChan/PoWSolver (aunque al desactivar el Proof of Work Solver desde las opciones e intentar postear algo, solo me aparece un error de "bypass denied" aun si ingreso el captcha correctamente).
>>19396 Deberíamos desarrollar un marco de trabajo. Mis scripts son un mamarracho, debería desarrollar una librería que permita comunicación entre Python y Lynxchan: Obtener captcha, leer hilos, recibir notificaciones en caso de nuevos mensajes, etc. De tal manera que cada anon pueda construir sobre esto. El problema es que una librería como esa requeriría mantenimiento constante, pues al 8 lo paran modificando. El resto de chanes armados sobre Lynxchan no tienen tantas modificaciones principalmente porque no reciben la misma cantidad de ataques.
Lo que me pregunto es si una librería que permita comunicación con chan tipo Lynxchan debería ser sincrónica o asincrónica. La librería de Discord de Python es asincrónica; pero no se nada de ese tema y tendría que leer para poder implementarlo de maners apropiada.
>>19398 >al 8 lo paran modificando. El resto de chanes armados sobre Lynxchan no tienen tantas modificaciones principalmente porque no reciben la misma cantidad de ataques. De todos modos creo que este chan a nivel de API no se diferencia tanto del resto. Me parece que la diferencia mas importante radica en el frontend (Aleph en lugar de PenumbraLynx o alguno de los que hay en https://gitgud.io/LynxChan/LynxChan-ThirdPartyFrontEnds ) y en que necesitas un referer y cookie para obtener los datos. >>19415 >debería ser sincrónica o asincrónica Si fuera a meterme en un proyecto así, primero comenzaría haciendo las funciones principales para que funcionen de manera independiente (por ejemplo; una para mandar peticiones al servidor, otra para parsear los hilos, otra para los tablones, otra para las notificaciones, otra mas para obtener el captcha/PoW y así). Quizás con comentarios que expliquen brevemente para que sirven cada una, aunque si documentar les da flojera como a mi entonces se le puede pedir a ChatGPT que genere comentarios en formato Docstring teniendo en cuenta lo de https://pywombat.com/articles/docstring-python De ese modo se tendría una base sobre la cual hacer cosas mas complejas y se podría ver cual enfoque vale mas la pena.
>>19433 En si la API de este chan no es muy diferente de la de otros; la diferencia es que tiene añadidas cosas en las cookies como el disclaimer que paran cambiando a cada rato.
>>19415 Al igual que con la de Discord, tu librería al final todo lo que haría es mandar una solicitud por http(s) y esperar una respuesta. Si ni siquiera sabes del tema, hacer una librería sincrónica probablemente te resulte más fácil (aunque, si estás dispuesto a aprender, no es como si el asyncio de Python fuera excesivamente complejo...). Ahora, sobre el mismo diseño de la API de la librería, lo mejor sería que te copies de alguna otra librería del mismo tipo que la que quieras escribir (sincrónica o asíncrona). Podría resultarte bastante costoso tener que estar modificando la API (y el código que hayas escrito que dependa en ella) después de tener todo el código de la librería, así que también te sugiero que tengas una buena idea de como quieres que sea desde antes (aunque dado que no creo que la API del chan sea muy compleja, y por lo tanto tu librería tampoco lo sería, quizás esto no sea necesario para ti).
Ahí voy avanzando. Ya tengo hechas tres funciones: >Una para actualizar las galletas >Una para conseguir la información en bruto del hilo >Una para realizar un posteo Mi duda en torno a la última gira alrededor de que me parece lógico que la función reciba la URL del hilo y un json con toda la información que se va a postear; sin embargo, por la manera como está hecha la API de 8chan el ID del hilo y el URI del tablón están metidos dentro del json, por lo que al añadir la URL del hilo se tiene información redundante. Por otro lado si pongo el ID del hilo y el URI como parámetros de la función, luego voy a tener que combinarlos con el json con lo que va a acabar de manera redundante. Quizá estoy sobrepensando demasiado esto; pero aún así me gustaría saber su opinión, estoy tratando que las herramientas queden bonitas en lugar de simplemente ser algo que "funciona" a pesar de lo feo y redundante que pueda lucir.
¿Alguien estaría interesado en un bot que tome información de un RSS feed y lo postee en un hilo? me está tincando montar algo así desde hace tiempo, pero no estoy seguro si habrá demanda de ello.
(242.92 KB 648x648 1469570607188.png)

¡Mis bots se rompieron! según lo poco que pude indagar en la red la reciente implementación de OpenSSL hizo mierda a medio internet: https://www.openssl.org/ Estaré averiguando como levantar el error, si alguien se sume a mi aventura sería genial; sino no quedará de otra sino hacerlo a la antigüita y volver a Selenium. Odio usar Selenium, funcionaba como el orto en Hispa, se rompía a cada rato.


Forms
Eliminar
Informar
Respuesta rápida