Botón de subir imagenes automaticamente

Hola, en otro foro que uso de mi oficio tenemos esta barra de herramientas:

Imagen

Hay mil funciones más que ya no digo de meterlas porque son más residuales (insertar mail por ej.), pero hay un botón de subir imagen que no es al servidor del foro si no a un servicio de terceros, te deja elegir lo que quieres subir y lo envía allí y ya te mete el enlace con [img /img] directamente.

¿Se podría tener algo así aquí? Yo creo que sería bastante útil.
Sin un acuerdo entre partes como no tengan algo en el eula al respecto podrian considerarlo abuso, ojo.

Alguien que conozco tubo movida con una red social por usarla de forma interna de una app para hacer una compartición. Nada ilegal a priori, pero como el fin era único para su app/sitio se le tiraron al cuello.

No se si sería el caso, pero son cosas a mirar bien.
exitfor escribió:Sin un acuerdo entre partes como no tengan algo en el eula al respecto podrian considerarlo abuso, ojo.

Alguien que conozco tubo movida con una red social por usarla de forma interna de una app para hacer una compartición. Nada ilegal a priori, pero como el fin era único para su app/sitio se le tiraron al cuello.

No se si sería el caso, pero son cosas a mirar bien.


Pero yo no hablo de subir a una red social, sino a una web que se dedica exclusivamente al hosting de imagenes. Algo como imgBB por ejemplo que imagino que se benefician de las subidas porque terminan absorbiendo datos gratis [carcajad]
Eso sería maravilloso.

De hecho, la falta de almacenamiento en general, tanto para subir imágenes de forma fácil, como de espacio en la bandeja de entrada de los MP, es para mi el principal problema técnico del, foro.
Hide_to escribió:Eso sería maravilloso.

De hecho, la falta de almacenamiento en general, tanto para subir imágenes de forma fácil, como de espacio en la bandeja de entrada de los MP, es para mi el principal problema técnico del, foro.


Lo de los MP puedes crear varías bandejas y con eso amplias tamaño.
@SuperPadLand Pues lo mismo no sería complicado de implementar. Pero creo que es mejor esto:


Ahora mismo se me está ocurriendo algo para que un único usuario por su cuenta lo implemente, mediante un script de Tampermonkey que detecte la url posting.php?mode=reply y que inserte en la interfaz un botón extra que sirva para elegir (o pegar, o arrastrar) una foto de tu pc y que en ese momento la suba a la API de por ejemplo https://imgur.com/ y que esta mande por POST la url de la imagen y que finalmente se inserte en el hilo.

Este sistema valdría para cualquier foro (si estás en varios foros).
paco_man escribió:@SuperPadLand Pues lo mismo no sería complicado de implementar. Pero creo que es mejor esto:


Ahora mismo se me está ocurriendo algo para que un único usuario por su cuenta lo implemente, mediante un script de Tampermonkey que detecte la url posting.php?mode=reply y que inserte en la interfaz un botón extra que sirva para elegir (o pegar, o arrastrar) una foto de tu pc y que en ese momento la suba a la API de por ejemplo https://imgur.com/ y que esta mande por POST la url de la imagen y que finalmente se inserte en el hilo.

Este sistema valdría para cualquier foro (si estás en varios foros).


Pues no suena mal, pero haría falta un mejor tutorial y dicho script para los profanos [ayay]
SuperPadLand escribió:
paco_man escribió:@SuperPadLand Pues lo mismo no sería complicado de implementar. Pero creo que es mejor esto:


Ahora mismo se me está ocurriendo algo para que un único usuario por su cuenta lo implemente, mediante un script de Tampermonkey que detecte la url posting.php?mode=reply y que inserte en la interfaz un botón extra que sirva para elegir (o pegar, o arrastrar) una foto de tu pc y que en ese momento la suba a la API de por ejemplo https://imgur.com/ y que esta mande por POST la url de la imagen y que finalmente se inserte en el hilo.

Este sistema valdría para cualquier foro (si estás en varios foros).


Pues no suena mal, pero haría falta un mejor tutorial y dicho script para los profanos [ayay]


HECHO !!

Ostras con GPT ha sido facilísimo. Qué burrada la puñetera IA.


Descarga e instala la extensión Tampermonkey (para mozilla o chrome, o el que tengas).

Una vez instalado le das a Nuevo script y pega este código:

// ==UserScript==
// @name         EOL - Subir imagen a ImgBB
// @namespace    https://www.elotrolado.net/
// @version      1.1
// @description  Agrega un botón "ImgBB" para subir imágenes al editor de mensajes en EOL (responder, nuevo tema, editar, citar)
// @author       GPT
// @match        https://www.elotrolado.net/posting.php?mode=reply*
// @match        https://www.elotrolado.net/posting.php?mode=post*
// @match        https://www.elotrolado.net/posting.php?mode=edit*
// @match        https://www.elotrolado.net/posting.php?mode=quote*
// @icon         https://www.elotrolado.net/favicon.ico
// @grant        GM_xmlhttpRequest
// @connect      api.imgbb.com
// ==/UserScript==

(function() {
    'use strict';

    // ⚙️ Sustituye con tu propia API Key de ImgBB:
    const API_KEY = 'TU_APIKEY_AQUÍ';

    window.addEventListener('load', () => {
        const toolbar = document.querySelector('#format-buttons');
        const textarea = document.querySelector('textarea[name="message"]');
        if (!toolbar || !textarea) return;

        // Crear botón con texto "ImgBB"
        const button = document.createElement('button');
        button.type = 'button';
        button.textContent = 'ImgBB';
        button.title = 'Subir imagen a ImgBB';
        button.style.marginLeft = '6px';
        button.style.padding = '4px 8px';
        button.style.borderRadius = '4px';
        button.style.backgroundColor = '#ffcc00';
        button.style.color = '#000';
        button.style.fontWeight = 'bold';
        button.style.cursor = 'pointer';
        button.style.border = '1px solid #aaa';

        // Crear input invisible
        const input = document.createElement('input');
        input.type = 'file';
        input.accept = 'image/*';
        input.style.display = 'none';

        input.addEventListener('change', () => {
            const file = input.files[0];
            if (!file) return;

            button.textContent = 'Subiendo...';
            button.disabled = true;

            const reader = new FileReader();
            reader.onload = function() {
                const base64 = reader.result.split(',')[1];

                GM_xmlhttpRequest({
                    method: 'POST',
                    url: 'https://api.imgbb.com/1/upload',
                    headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
                    data: `key=${API_KEY}&image=${encodeURIComponent(base64)}`,
                    onload: (response) => {
                        button.textContent = 'ImgBB';
                        button.disabled = false;

                        try {
                            const json = JSON.parse(response.responseText);
                            if (json && json.data && json.data.url) {
                                const url = json.data.url;
                                textarea.value += `[img]${url}[/img]\n`;
                                alert('✅ Imagen subida correctamente:\n' + url);
                            } else {
                                alert('⚠️ Error al subir imagen:\n' + response.responseText);
                            }
                        } catch (e) {
                            alert('Error procesando respuesta: ' + e);
                        }
                    },
                    onerror: () => {
                        button.textContent = 'ImgBB';
                        button.disabled = false;
                        alert('❌ Error al conectar con ImgBB.');
                    }
                });
            };
            reader.readAsDataURL(file);
        });

        // Al hacer clic, abrir selector de archivos
        button.addEventListener('click', () => input.click());

        // Insertar en la barra
        toolbar.appendChild(button);
        toolbar.appendChild(input);
    });
})();




Tienes que hacerte una cuenta en:

https://imgbb.com/

Una vez la tengas te metes aquí:

https://api.imgbb.com/

Y copias la clave API. Asegúrate de estar logeado en la web:

Imagen

Y pegas esa clave justo en la parte del código anterior donde pone:

const API_KEY = 'TU_APIKEY_AQUÍ';

Para que quede así:

const API_KEY = 'FbHJ8FGX/i4p4ayhjkjhkjhswkjshkwj';

Guardas el código con control + S en Tampermonkey.

Ya lo tienes !! Ya puedes subir directamente imágenes desde tu pc sin tener que subirlas previamente a ningún servidor, copiar, pegar, etc.

Imagen

Ejemplo:

Imagen

Mola, es muy práctico. Gracias por la idea. [carcajad]


Imagen
7 respuestas