Tengo un Discourse en el que soy moderador (no tengo acceso al backend). Alguien ha publicado numerosos temas en los que las imágenes se han enlazado directamente a un proveedor de alojamiento de terceros (en este caso, Google Docs). Dejó la empresa y todos esos enlaces de imágenes ahora están rotos.
Puedo (y lo he hecho) revisar manualmente algunas de sus publicaciones para encontrar y arreglar (gracias al archivo de Internet) imágenes rotas. Pero eso es laborioso. Me gustaría obtener una lista de todos los temas que contienen estas URL de imágenes rotas para que podamos arreglarlas colectivamente, volviendo a subir las imágenes al sitio.
Por supuesto, puedo usar la búsqueda para encontrar con:imágenes #tutoriales, pero no puedo buscar dentro de las URL de las imágenes para, por ejemplo, googleusercontent. ¿Es eso posible, sin acceso a la API o al backend rake?
Un administrador podría crear una consulta del explorador de datos que encuentre esas publicaciones.
Pero si el administrador quisiera que esto no sucediera, tendría que tener activada la opción de descargar imágenes a nivel local. Es un problema que ellos mismos han creado y no es realmente trabajo de un moderador solucionarlo.
¿Eso significa que tampoco puedes instalar el explorador de datos? Esa sería la herramienta elegida para esto.
¿Cómo se formatean las imágenes en las publicaciones? ¿Solo muestran la URL simple, usan [img], <img>, …?
Solo para ilustrar tu problema. Una publicación podría contener una URL de imagen rota, como https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiNaW4QQ43EQ-8qqQPntDP7so6Cg19PVSLN9bXv3ZhQqHZtomb8CGY3XArx3GIaZ04d0p9K3V-buaf73-M5dpq2wPuvnjsapStHdTkTVoPj2q9RAmcdczmE12HYz57PNOdVuft1/s1600-h/eastern_coastal_pcn_ap.jpg
Si busco googleusercontent no se obtienen resultados. Sin embargo, puedo encontrar publicaciones que tienen imágenes, referenciadas por una URL que contiene el texto googleusercontent. No sé si esto es un error o una característica que discourse no busca en las URL de los enlaces de imágenes formateados en markdown.
Creo que la búsqueda de Discourse se realiza en la publicación procesada, que contiene HTML.
La búsqueda ignora las etiquetas HTML, y las etiquetas IMG no contienen texto, de ahí la imposibilidad de devolver lo que buscas.
¿Por qué no puedes usar la API?
Podrías crear un script local que active una consulta de búsqueda de las publicaciones del usuario que contengan imágenes, itere a través de los resultados (lo suficientemente lento como para no alcanzar los límites de tasa, y también puedes consultar las publicaciones sin procesar contenido si es necesario) y muestre las publicaciones que contengan la subcadena que buscas.
Quizás haya una solución más simple, pero eso es lo que yo haría sin otra opción. Bastante fácil de hacer.
Sí, quiero decir, no se requiere una clave para los puntos finales de búsqueda y publicación de la API necesarios para mi sugerencia, ¿a menos que me equivoque?
Y claro, idealmente requeriría conocimientos básicos de programación, incluso si las IA probablemente puedan generar un buen script base.
El problema mencionado seguramente no es ideal de resolver sin acceso de administrador.
No he solicitado una clave de API (burocracia), y no era consciente de que necesitaría una para hacer lo que percibí como una consulta de búsqueda “simple”. No era consciente de que no se asoma a las etiquetas HTML del contenido. Así que eso lo explica, gracias.
No es un problema que los administradores hayan creado. Es solo una situación de la que los administradores y creadores de contenido no eran conscientes hasta que alguien dejó la empresa, y se cerró el acceso a los Google Docs para esa cuenta, haciendo que las imágenes desaparecieran/se rompieran.
Estoy de acuerdo en que podría solicitar una clave de API, o escribir algo localmente para raspar el sitio y encontrar las publicaciones ofensivas. Haré una de esas cosas.
No necesitas una clave de API para hacer búsquedas.
No estoy seguro de que tener una clave de API pueda ayudarte a resolver tu problema más fácilmente.
Aquí tienes un script de ejemplo en Python que recorre mis publicaciones (1 publicación cada 3 segundos) en meta y devuelve aquellas que tienen la subcadena upload:// en el contenido sin procesar:
import requests
import time
def fetch_posts(page):
url = f"https://meta.discourse.org/search.json?q=%40cocoquark&page={page}"
response = requests.get(url)
return response.json()
def fetch_post_content(post_id):
url = f"https://meta.discourse.org/posts/{post_id}/raw"
response = requests.get(url)
return response.text
def process_posts():
page = 1
while True:
print(f"página {page}")
data = fetch_posts(page)
for post in data['posts']:
content = fetch_post_content(post['id'])
if "upload://" in content:
print("https://meta.discourse.org/posts/" + str(post['id']))
time.sleep(3)
if len(data['posts']) < 50:
print("No hay más resultados.")
break
page += 1
if __name__ == "__main__":
process_posts()
No necesitas una clave de API para hacer una búsqueda simple, pero no le veo el sentido a “usar la API” para hacer una búsqueda simple.
Quizás entendí mal el problema. Sonaba como un problema que no habría ocurrido si descargar imágenes remotas a local hubiera estado activado, y está activado por defecto. Pero también es probable que se desactivara por alguna razón burocrática por la que el administrador lo hizo. Creo que será innecesariamente difícil resolver tu problema sin el plugin explorador de datos o acceso a Rails.