2009-07-07 16 views
9

J'ai besoin d'un moyen d'insérer de nouveaux articles directement dans ma base de données MediaWiki sans endommager l'installation du wiki.Insérer des articles directement dans la base de données MediaWiki

Je suppose que si je savais quels tableaux/attributs MediaWiki insère à lors de la création d'un nouvel article, je pourrais les remplir moi-même.

Est-ce que quelqu'un connaît un meilleur moyen ou a des suggestions?

Répondre

4

Parmi les nombreux robots et API disponibles pour MediaWiki, un simple point de départ est le MediaWiki Bulk Page creator.

C'est un script PHP simple, s'appuyant sur la bibliothèque de classes Snoopy, qui permet de créer plusieurs pages à partir d'un simple format texte.

Avant de commencer, assurez-vous d'abord d'avoir lu Creating a Bot. il contient des détails critiques sur la façon de configurer l'accès bot à votre wiki.

+0

Très utile, cela a fonctionné avec mon script rss en environ 30 minutes. Merci! –

1

Pourquoi avez-vous besoin de faire cela?

  • Si vous essayez de migrer des données à partir d'une installation précédente du wiki, il existe déjà des outils d'importation et d'exportation.
  • Si vous souhaitez automatiser l'ajout automatique d'un grand nombre de pages pré-formatées, le MediaWiki API fournit un itinéraire plus sûr que le déblayage direct de la base de données.
+0

Je suis en train d'écrire un script php pour les listes diverses flux RSS à partir de laquelle l'utilisateur peut sélectionner des articles à ajouter dans le wiki. Je ne suis pas sûr de savoir comment utiliser l'API pour cela car je ne l'ai jamais utilisé auparavant. Est-il possible de créer plusieurs pages à la fois (en fonction du nombre d'articles sélectionnés par l'utilisateur) en utilisant l'API? –

+0

Je ne sais pas si vous pouvez créer plusieurs pages en un seul appel sans utiliser 'action = import', mais vous pouvez simplement appeler' action = edit' plusieurs fois, une fois pour chaque nouvelle page que vous souhaitez créer. – ephemient

+0

Je peux probablement utiliser cURL pour envoyer plusieurs appels à l'API. Je n'arrive pas à trouver comment utiliser/créer un jeton d'édition ou spécifier l'utilisateur avec lequel effectuer une publication. Sinon, je suis sur la bonne voie. Merci pour l'aide. –

2

Vous ne voulez certainement pas écrire directement dans la base de données. Vous pouvez créer une extension qui prend en entrée les éléments sélectionnés de RSS et crée un article wiki par élément, en utilisant Article::doEdit().

2

Vous devriez le faire avec un bot. Les bots peuvent être lancés de manière autonome, mais si vous intégrez d'autres codes, vous pouvez choisir en fonction de la langue. Pour PHP, il y a le MediaWiki Bulk Page Creator. Pour Python, pymediawiki est livré avec Pagefromfile.

Il existe également une extension par Yaron Koren appelée External Data qui résout une tâche connexe. Il vous permet d'incorporer des données provenant de sources externes dans vos pages wiki. Vous pouvez extraire des éléments spécifiques à partir de CSV, XML ou JSON - récupérés à partir d'URL, de fichiers locaux ou de bases de données.

5

Je suis l'auteur du Bulk Page Creator, agréable de voir qu'il est encore utilisé !!!

Mon dernier outil d'importation MediaWiki crée des pages à partir d'un fichier de données CSV et d'un modèle de page. Il génère des fichiers Mediawiki XML Import comme suggéré par Adrian.

Check it out

Mediawiki CSV Import

+0

J'ai lu beaucoup de pages sur l'ajout d'un nouvel article, que diriez-vous des catégories, wiki de médias crée-t-il un arbre de catégorie séparément? Je pense que la première étape de la migration d'une base de données totalement différente vers le wiki des médias est la création de catégories, n'est-ce pas? – HPM

+0

Avez-vous également publié le code de ce site Web? – guaka