<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://fandombackroomscn.icu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PandaFiredoge</id>
	<title>FBC镜像站 - 用户贡献 [zh-cn]</title>
	<link rel="self" type="application/atom+xml" href="https://fandombackroomscn.icu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PandaFiredoge"/>
	<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/%E7%89%B9%E6%AE%8A:%E7%94%A8%E6%88%B7%E8%B4%A1%E7%8C%AE/PandaFiredoge"/>
	<updated>2026-08-08T22:21:58Z</updated>
	<subtitle>用户贡献</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=759</id>
		<title>FBCMirror:文件</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=759"/>
		<updated>2026-08-07T08:08:57Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[用户:PandaFiredoge/文件.js]]&lt;br /&gt;
&lt;br /&gt;
打开后室wiki任意页面，复制JS到浏览器F12控制台运行&lt;br /&gt;
&lt;br /&gt;
获取到文件列表之后，导入到[https://www.freedownloadmanager.org/zh/ FDM]里&lt;br /&gt;
&lt;br /&gt;
这样获取到的文件名如果有问题，可以试试这个[[用户:PandaFiredoge/文件2.js]]&lt;br /&gt;
&lt;br /&gt;
似乎有bug……&lt;br /&gt;
&lt;br /&gt;
简单来说，就是先让AI写个JS脚本获取文件名（也就是File命名空间所有页面的列表），然后用文本编辑器批量查找替换拼接成这样的格式&lt;br /&gt;
&lt;br /&gt;
https://backrooms.fandom.com/zh/wiki/Special:FilePath/File:文件名.扩展名&lt;br /&gt;
&lt;br /&gt;
然后用下载器下载，如FDM、aria2&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=%E7%94%A8%E6%88%B7:PandaFiredoge/%E6%96%87%E4%BB%B62.js&amp;diff=720</id>
		<title>用户:PandaFiredoge/文件2.js</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=%E7%94%A8%E6%88%B7:PandaFiredoge/%E6%96%87%E4%BB%B62.js&amp;diff=720"/>
		<updated>2026-08-07T07:29:55Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​创建页面，内容为“(async function fetchAllFilesDirectUrl() {   const scriptPath = mw.config.get(&amp;#039;wgScriptPath&amp;#039;) || &amp;#039;&amp;#039;;   const apiEndpoint = `${window.location.origin}${scriptPath}/api.php`;   const redirectBaseUrl = `${window.location.origin}${scriptPath}/wiki/Special:%E9%87%8D%E5%AE%9A%E5%90%91/file?wpvalue=`;      let urlList = [];   let apcontinue = &amp;#039;&amp;#039;;    console.log(&amp;#039;开始获取并生成文件下载链接...&amp;#039;);    do {     const params = new URLSearchParams({       action…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(async function fetchAllFilesDirectUrl() {&lt;br /&gt;
  const scriptPath = mw.config.get(&#039;wgScriptPath&#039;) || &#039;&#039;;&lt;br /&gt;
  const apiEndpoint = `${window.location.origin}${scriptPath}/api.php`;&lt;br /&gt;
  const redirectBaseUrl = `${window.location.origin}${scriptPath}/wiki/Special:%E9%87%8D%E5%AE%9A%E5%90%91/file?wpvalue=`;&lt;br /&gt;
  &lt;br /&gt;
  let urlList = [];&lt;br /&gt;
  let apcontinue = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
  console.log(&#039;开始获取并生成文件下载链接...&#039;);&lt;br /&gt;
&lt;br /&gt;
  do {&lt;br /&gt;
    const params = new URLSearchParams({&lt;br /&gt;
      action: &#039;query&#039;,&lt;br /&gt;
      list: &#039;allpages&#039;,&lt;br /&gt;
      apnamespace: &#039;6&#039;, // File 命名空间&lt;br /&gt;
      aplimit: &#039;max&#039;,&lt;br /&gt;
      format: &#039;json&#039;,&lt;br /&gt;
      origin: &#039;*&#039;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (apcontinue) {&lt;br /&gt;
      params.append(&#039;apcontinue&#039;, apcontinue);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
      const response = await fetch(`${apiEndpoint}?${params.toString()}`);&lt;br /&gt;
      const data = await response.json();&lt;br /&gt;
&lt;br /&gt;
      if (data.query &amp;amp;&amp;amp; data.query.allpages) {&lt;br /&gt;
        // 直接在获取时拼好完整 Redirect URL&lt;br /&gt;
        const urls = data.query.allpages.map(page =&amp;gt; `${redirectBaseUrl}${encodeURIComponent(page.title)}`);&lt;br /&gt;
        urlList.push(...urls);&lt;br /&gt;
        console.log(`已处理 ${urlList.length} 个文件链接...`);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      apcontinue = data.continue ? data.continue.apcontinue : null;&lt;br /&gt;
    } catch (error) {&lt;br /&gt;
      console.error(&#039;获取失败:&#039;, error);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  } while (apcontinue);&lt;br /&gt;
&lt;br /&gt;
  console.log(`✅ 完成！生成了 ${urlList.length} 个下载链接。`);&lt;br /&gt;
&lt;br /&gt;
  // 直接导出拼好的 URL 列表，开箱即用&lt;br /&gt;
  const blob = new Blob([urlList.join(&#039;\n&#039;)], { type: &#039;text/plain&#039; });&lt;br /&gt;
  const url = URL.createObjectURL(blob);&lt;br /&gt;
  const a = document.createElement(&#039;a&#039;);&lt;br /&gt;
  a.href = url;&lt;br /&gt;
  a.download = &#039;fdm_download_links.txt&#039;;&lt;br /&gt;
  a.click();&lt;br /&gt;
  URL.revokeObjectURL(url);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=719</id>
		<title>FBCMirror:文件</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=719"/>
		<updated>2026-08-07T07:29:47Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[用户:PandaFiredoge/文件.js]]&lt;br /&gt;
&lt;br /&gt;
打开后室wiki任意页面，复制JS到浏览器F12控制台运行&lt;br /&gt;
&lt;br /&gt;
获取到文件列表之后，导入到[https://www.freedownloadmanager.org/zh/ FDM]里&lt;br /&gt;
&lt;br /&gt;
这样获取到的文件名如果有问题，可以试试这个[[用户:PandaFiredoge/文件2.js]]&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=CommentStreams:A7596bd9dc11ada784e6281b09488f47&amp;diff=715</id>
		<title>CommentStreams:A7596bd9dc11ada784e6281b09488f47</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=CommentStreams:A7596bd9dc11ada784e6281b09488f47&amp;diff=715"/>
		<updated>2026-08-07T07:23:52Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[FBCMirror:文件]]{{DISPLAYTITLE:&lt;br /&gt;
文件&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=712</id>
		<title>FBCMirror:文件</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=FBCMirror:%E6%96%87%E4%BB%B6&amp;diff=712"/>
		<updated>2026-08-07T07:22:23Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​创建页面，内容为“用户:PandaFiredoge/文件.js  打开后室wiki任意页面，复制JS到浏览器F12控制台运行  获取到文件列表之后，导入到[https://www.freedownloadmanager.org/zh/ FDM]里”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[用户:PandaFiredoge/文件.js]]&lt;br /&gt;
&lt;br /&gt;
打开后室wiki任意页面，复制JS到浏览器F12控制台运行&lt;br /&gt;
&lt;br /&gt;
获取到文件列表之后，导入到[https://www.freedownloadmanager.org/zh/ FDM]里&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
	<entry>
		<id>https://fandombackroomscn.icu/index.php?title=%E7%94%A8%E6%88%B7:PandaFiredoge/%E6%96%87%E4%BB%B6.js&amp;diff=710</id>
		<title>用户:PandaFiredoge/文件.js</title>
		<link rel="alternate" type="text/html" href="https://fandombackroomscn.icu/index.php?title=%E7%94%A8%E6%88%B7:PandaFiredoge/%E6%96%87%E4%BB%B6.js&amp;diff=710"/>
		<updated>2026-08-07T07:21:21Z</updated>

		<summary type="html">&lt;p&gt;PandaFiredoge：​创建页面，内容为“(async function fetchAllDirectImageUrls() {   const scriptPath = mw.config.get(&amp;#039;wgScriptPath&amp;#039;) || &amp;#039;&amp;#039;;   const apiEndpoint = `${window.location.origin}${scriptPath}/api.php`;   let urlList = [];   let aicontinue = &amp;#039;&amp;#039;;    console.log(&amp;#039;开始获取图片直链...&amp;#039;);    do {     const params = new URLSearchParams({       action: &amp;#039;query&amp;#039;,       list: &amp;#039;allimages&amp;#039;, // 直接查图片表       ailimit: &amp;#039;max&amp;#039;,       format: &amp;#039;json&amp;#039;,       origin: &amp;#039;*&amp;#039;     });      if (aic…”&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;(async function fetchAllDirectImageUrls() {&lt;br /&gt;
  const scriptPath = mw.config.get(&#039;wgScriptPath&#039;) || &#039;&#039;;&lt;br /&gt;
  const apiEndpoint = `${window.location.origin}${scriptPath}/api.php`;&lt;br /&gt;
  let urlList = [];&lt;br /&gt;
  let aicontinue = &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
  console.log(&#039;开始获取图片直链...&#039;);&lt;br /&gt;
&lt;br /&gt;
  do {&lt;br /&gt;
    const params = new URLSearchParams({&lt;br /&gt;
      action: &#039;query&#039;,&lt;br /&gt;
      list: &#039;allimages&#039;, // 直接查图片表&lt;br /&gt;
      ailimit: &#039;max&#039;,&lt;br /&gt;
      format: &#039;json&#039;,&lt;br /&gt;
      origin: &#039;*&#039;&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    if (aicontinue) {&lt;br /&gt;
      params.append(&#039;aicontinue&#039;, aicontinue);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    try {&lt;br /&gt;
      const response = await fetch(`${apiEndpoint}?${params.toString()}`);&lt;br /&gt;
      const data = await response.json();&lt;br /&gt;
&lt;br /&gt;
      if (data.query &amp;amp;&amp;amp; data.query.allimages) {&lt;br /&gt;
        // 直接读取图片的原图 URL (url 字段)&lt;br /&gt;
        const urls = data.query.allimages.map(img =&amp;gt; img.url);&lt;br /&gt;
        urlList.push(...urls);&lt;br /&gt;
        console.log(`已获取 ${urlList.length} 个原图直链...`);&lt;br /&gt;
      }&lt;br /&gt;
&lt;br /&gt;
      aicontinue = data.continue ? data.continue.aicontinue : null;&lt;br /&gt;
    } catch (error) {&lt;br /&gt;
      console.error(&#039;获取失败:&#039;, error);&lt;br /&gt;
      break;&lt;br /&gt;
    }&lt;br /&gt;
  } while (aicontinue);&lt;br /&gt;
&lt;br /&gt;
  console.log(`✅ 获取完成！共找到 ${urlList.length} 个原图直链。`);&lt;br /&gt;
&lt;br /&gt;
  const blob = new Blob([urlList.join(&#039;\n&#039;)], { type: &#039;text/plain&#039; });&lt;br /&gt;
  const url = URL.createObjectURL(blob);&lt;br /&gt;
  const a = document.createElement(&#039;a&#039;);&lt;br /&gt;
  a.href = url;&lt;br /&gt;
  a.download = &#039;direct_image_urls.txt&#039;;&lt;br /&gt;
  a.click();&lt;br /&gt;
  URL.revokeObjectURL(url);&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>PandaFiredoge</name></author>
	</entry>
</feed>