<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://ephemerawiki.space/index.php?action=history&amp;feed=atom&amp;title=Help%3AEphemera_Agent%2FBulk_Import</id>
	<title>Help:Ephemera Agent/Bulk Import - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://ephemerawiki.space/index.php?action=history&amp;feed=atom&amp;title=Help%3AEphemera_Agent%2FBulk_Import"/>
	<link rel="alternate" type="text/html" href="https://ephemerawiki.space/index.php?title=Help:Ephemera_Agent/Bulk_Import&amp;action=history"/>
	<updated>2026-05-19T12:45:43Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.3</generator>
	<entry>
		<id>https://ephemerawiki.space/index.php?title=Help:Ephemera_Agent/Bulk_Import&amp;diff=8&amp;oldid=prev</id>
		<title>EphemeraAdmin: Import: Help:Ephemera Agent/Bulk Import</title>
		<link rel="alternate" type="text/html" href="https://ephemerawiki.space/index.php?title=Help:Ephemera_Agent/Bulk_Import&amp;diff=8&amp;oldid=prev"/>
		<updated>2026-04-01T04:29:32Z</updated>

		<summary type="html">&lt;p&gt;Import: Help:Ephemera Agent/Bulk Import&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:Ephemera Agent — Bulk Import}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;WIKI&amp;#039;&amp;#039;&amp;#039; tab contains a &amp;#039;&amp;#039;&amp;#039;BULK IMPORT&amp;#039;&amp;#039;&amp;#039; section for loading many pages at once without making AI calls (except optionally for formatting). This is the primary way to populate the &amp;lt;code&amp;gt;Instructions:&amp;lt;/code&amp;gt; namespace.&lt;br /&gt;
&lt;br /&gt;
== JSON Import ==&lt;br /&gt;
&lt;br /&gt;
=== Supported Formats ===&lt;br /&gt;
&lt;br /&gt;
The importer accepts three JSON structures automatically:&lt;br /&gt;
&lt;br /&gt;
; Flat array (simplest)&lt;br /&gt;
:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
  { &amp;quot;title&amp;quot;: &amp;quot;Instructions:Foo&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;raw wikitext here&amp;quot; },&lt;br /&gt;
  { &amp;quot;title&amp;quot;: &amp;quot;Instructions:Bar&amp;quot;, &amp;quot;content&amp;quot;: &amp;quot;more wikitext&amp;quot;, &amp;quot;summary&amp;quot;: &amp;quot;Initial import&amp;quot; }&lt;br /&gt;
]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Instruction namespace schema&lt;br /&gt;
:&amp;lt;syntaxhighlight lang=&amp;quot;json&amp;quot;&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;pages&amp;quot;: [&lt;br /&gt;
    {&lt;br /&gt;
      &amp;quot;title&amp;quot;: &amp;quot;Instructions:Create/Source (Base Workflow)&amp;quot;,&lt;br /&gt;
      &amp;quot;meta&amp;quot;: { &amp;quot;id&amp;quot;: &amp;quot;create-source-base&amp;quot;, &amp;quot;type&amp;quot;: &amp;quot;workflow&amp;quot; },&lt;br /&gt;
      &amp;quot;sections&amp;quot;: {&lt;br /&gt;
        &amp;quot;Summary&amp;quot;: &amp;quot;Base workflow for creating a new source page.&amp;quot;,&lt;br /&gt;
        &amp;quot;Procedure&amp;quot;: [&amp;quot;Step one&amp;quot;, &amp;quot;Step two&amp;quot;, &amp;quot;Step three&amp;quot;],&lt;br /&gt;
        &amp;quot;Output&amp;quot;: [&amp;quot;Sources page&amp;quot;, &amp;quot;Talk page&amp;quot;]&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  ]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;sections&amp;lt;/code&amp;gt; object is automatically converted to wikitext:&lt;br /&gt;
* String values → paragraphs&lt;br /&gt;
* Arrays → bullet lists (&amp;lt;code&amp;gt;*&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Nested objects → definition lists (&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt; / &amp;lt;code&amp;gt;:&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
No AI call is needed for this conversion.&lt;br /&gt;
&lt;br /&gt;
=== Conflict Handling ===&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;On Conflict&amp;#039;&amp;#039;&amp;#039; dropdown controls what happens when a page already exists:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Option !! Behaviour&lt;br /&gt;
|-&lt;br /&gt;
| Skip existing pages || The page is left unchanged and marked as skipped in the log&lt;br /&gt;
|-&lt;br /&gt;
| Overwrite existing pages || The page is replaced silently&lt;br /&gt;
|-&lt;br /&gt;
| Ask for each conflict || A browser dialog prompts you to confirm or skip each conflict individually&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== AI Formatting ===&lt;br /&gt;
&lt;br /&gt;
If a page has no &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt; field and no &amp;lt;code&amp;gt;sections&amp;lt;/code&amp;gt; object, it cannot be imported without formatting help. Enable &amp;#039;&amp;#039;&amp;#039;Use AI to format wikitext&amp;#039;&amp;#039;&amp;#039; to have the generator model convert the raw JSON structure to wikitext. This costs tokens and requires an API key to be loaded.&lt;br /&gt;
&lt;br /&gt;
=== Running an Import ===&lt;br /&gt;
&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;📄 Choose JSON file&amp;#039;&amp;#039;&amp;#039; and select your file&lt;br /&gt;
# A preview shows how many pages were found and flags any that need AI formatting&lt;br /&gt;
# Set your conflict preference&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;IMPORT PAGES&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The progress bar and log show status for each page as it is created&lt;br /&gt;
&lt;br /&gt;
A CSRF token is fetched once and reused for the whole batch. A 300ms pause between pages respects MediaWiki rate limits.&lt;br /&gt;
&lt;br /&gt;
== XML Dump Import ==&lt;br /&gt;
&lt;br /&gt;
=== Overview ===&lt;br /&gt;
&lt;br /&gt;
Accepts standard MediaWiki XML export format — the same file produced by [[Special:Export]] or any MediaWiki dump tool. The XML is posted as a multipart file upload to &amp;lt;code&amp;gt;proxy.php&amp;lt;/code&amp;gt;, which forwards it to the wiki&amp;#039;s &amp;lt;code&amp;gt;action=import&amp;lt;/code&amp;gt; API.&lt;br /&gt;
&lt;br /&gt;
=== Required Permission ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;importupload&amp;lt;/code&amp;gt; right is required on your bot account. This is typically restricted to sysops. To grant it:&lt;br /&gt;
&lt;br /&gt;
Add to &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$wgGroupPermissions[&amp;#039;bot&amp;#039;][&amp;#039;importupload&amp;#039;] = true;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then grant &amp;#039;&amp;#039;&amp;#039;Import pages from file uploads&amp;#039;&amp;#039;&amp;#039; at [[Special:BotPasswords]] when creating or editing your bot password.&lt;br /&gt;
&lt;br /&gt;
=== Options ===&lt;br /&gt;
&lt;br /&gt;
; Import full revision history&lt;br /&gt;
: Checked — all revisions from the XML are imported, preserving the full edit history. Unchecked — only the latest revision of each page is imported.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
; Warning&lt;br /&gt;
: XML import can overwrite existing pages and histories depending on the dump. Test with a small file first.&lt;br /&gt;
&lt;br /&gt;
=== Running an XML Import ===&lt;br /&gt;
&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;🗂 Choose XML dump&amp;#039;&amp;#039;&amp;#039; and select your &amp;lt;code&amp;gt;.xml&amp;lt;/code&amp;gt; file&lt;br /&gt;
# The tool sniffs the first 512 bytes to confirm it looks like a MediaWiki export&lt;br /&gt;
# The file size is displayed — confirm before proceeding for large dumps&lt;br /&gt;
# Set the revision history option&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;IMPORT XML DUMP&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# The log shows each imported page and its revision count&lt;br /&gt;
&lt;br /&gt;
[[Category:Help]]&lt;br /&gt;
[[Category:EphemeraAgent]]&lt;/div&gt;</summary>
		<author><name>EphemeraAdmin</name></author>
	</entry>
</feed>