2009-07-07 13 views
9

Necesito una forma de insertar nuevos artículos directamente en mi base de datos MediaWiki sin dañar la instalación de la wiki.Insertar artículos directamente en la base de datos MediaWiki

Supongo que si supiera a qué tablas/atributos se inserta MediaWiki cuando se crea un nuevo artículo, entonces podría rellenarlos yo mismo.

¿Alguien conoce una mejor manera o tiene alguna sugerencia?

Respuesta

4

De muchos bots y API disponibles para MediaWiki, un simple lugar para comenzar es el MediaWiki Bulk Page creator.

Es un script PHP simple, que depende de la biblioteca de clases Snoopy, que puede crear varias páginas a partir de un formato de texto simple.

Antes de empezar, asegúrese de leer Creating a Bot primero. contiene detalles críticos sobre cómo configurar el acceso de bot a tu wiki.

+0

Muy útil, lo he puesto en funcionamiento con mi script rss en aproximadamente 30 minutos. ¡Gracias! –

1

¿Por qué necesita hacer esto?

  • Si está intentando migrar datos de una instalación de wiki anterior, ya existen herramientas de importación y exportación.
  • Si desea automatizar la adición de un gran conjunto de páginas preformateadas de forma automática, el MediaWiki API proporciona una ruta más segura que la de la base de datos directamente.
+0

Estoy escribiendo un script php para listas alimenta varios RSS de la cual el usuario puede seleccionar los artículos para añadir en el wiki. No estoy muy seguro de cómo usar la API para esto ya que nunca antes lo había usado. ¿Es posible crear varias páginas a la vez (dependiendo de cuántos artículos haya seleccionado el usuario) utilizando la API? –

+0

No estoy seguro si puede crear muchas páginas en una sola llamada sin usar 'action = import', pero puede invocar' action = edit' varias veces, una para cada página nueva que desea crear. – ephemient

+0

Probablemente pueda usar cURL para enviar varias llamadas a la API. Tengo problemas para averiguar cómo usar/crear un token de edición o especificar con qué usuario publicarlo. De lo contrario, estoy en el camino correcto. Gracias por la ayuda. –

2

Definitivamente no desea escribir en la base de datos directamente. Es posible que desee crear una extensión que tome elementos seleccionados de RSS como entrada y cree un artículo wiki por artículo, usando Article::doEdit().

2

Deberías hacer esto con un bot. Los Bots se pueden ejecutar de forma autónoma, pero si se está integrando con otro código, es posible que desee elegir según el idioma. Para PHP, está el MediaWiki Bulk Page Creator. Para Python, pymediawiki viene con Pagefromfile.

También hay una extensión por Yaron Koren llamada External Data que resuelve una tarea relacionada. Te permite incorporar datos de fuentes externas a tus páginas wiki. Puede extraer elementos específicos de CSV, XML o JSON, recuperados de URL, archivos locales o bases de datos.

5

Soy el autor del creador de páginas a granel, ¡es bueno ver que todavía se usa!

Mi última herramienta de importación de MediaWiki crea páginas a partir de un archivo de datos CSV y una plantilla de página. Genera archivos de importación XML de Mediawiki según lo sugerido por Adrian.

Check it out

Mediawiki CSV Import

+0

He leído muchas páginas sobre cómo agregar un nuevo artículo, ¿qué hay de las categorías ?, ¿el wiki de medios crea un árbol de categorías por separado? Creo que el primer paso para migrar de una base de datos totalmente diferente a una wiki de medios es crear categorías, ¿no es así? – HPM

+0

¿Liberaste también el código que ejecuta ese sitio web? – guaka

Cuestiones relacionadas