「動画ページ作成/修正ツール」の編集履歴(バックアップ)一覧に戻る
動画ページ作成/修正ツール - (2010/11/24 (水) 17:49:16) のソース
#javascript(){{ <script language="JavaScript"><!-- str_version = "TDMGenerator ver1.13"; document.write(str_version); function Generate() { FixTitle(); FixSource(); FixTag(); } function Clear() { document.formTDMGenerator.MovTitle.value = ""; document.formTDMGenerator.URL.value = ""; document.formTDMGenerator.GameTitle.value = ""; document.formTDMGenerator.Record.value = ""; document.formTDMGenerator.Count.value = ""; document.formTDMGenerator.Player.value = ""; document.formTDMGenerator.TASVideosURL.value = ""; document.formTDMGenerator.CopyURL.value = ""; document.formTDMGenerator.PartLinkURL.value = ""; document.formTDMGenerator.MylistURL.value = ""; document.formTDMGenerator.MovieURL.value = ""; document.formTDMGenerator.ExplanationURL.value = ""; document.formTDMGenerator.Remarks.value = ""; document.formTDMGenerator.bSource.value = ""; document.formTDMGenerator.LSStatus.value = ""; } function FixTitle() { document.formTDMGenerator.FixTitle.value = document.formTDMGenerator.MovTitle.value.replace(/\)/g, ")"); } function FixSource() { var str_a = "|CENTER:BGCOLOR(lightblue):&sizex(6){" + GetRBValue(document.formTDMGenerator.Region) + "}|>|CENTER:BGCOLOR(#F0F8FF):&bold(){&link_edit(page=" + document.formTDMGenerator.FixTitle.value + ",text=ここを編集)}|"; var str_b = FixMovFMT() + document.formTDMGenerator.Record.value + "}|"; var str_c = "|~|CENTER:BGCOLOR(#F0F8FF):追記回数|CENTER:&bold(){" + document.formTDMGenerator.Count.value + "}|"; var str_d = "|~|CENTER:BGCOLOR(#F0F8FF):Player|CENTER:&bold(){" + document.formTDMGenerator.Player.value + "}|"; var str_e = "|~|CENTER:BGCOLOR(#F0F8FF):TASVideosページ|CENTER:" + FixURL(document.formTDMGenerator.TASVideosURL.value) + "|"; var str_f = "|~|CENTER:BGCOLOR(#F0F8FF):TASVideosStatus|CENTER:&bold(){" + GetRBValue(document.formTDMGenerator.TASVideosStatus, "") + "}|"; var str_g = "|~|CENTER:BGCOLOR(#F0F8FF):転載元|CENTER:" + FixCopyURL(document.formTDMGenerator.CopyURL.value) + "|"; var str_h = "|~|CENTER:BGCOLOR(#F0F8FF):分割リンク|CENTER:" + FixPartLink() + "|"; var str_i = "|~|CENTER:BGCOLOR(#F0F8FF):マイリスト|CENTER:" + FixMylist() + "|"; var str_j = "|CENTER:BGCOLOR(#F0F8FF):備考|CENTER:BGCOLOR(#F0F8FF):Movieファイル|CENTER:" + FixURL(document.formTDMGenerator.MovieURL.value, "リンク") + "|"; var str_k = "|" + document.formTDMGenerator.Remarks.value + "|CENTER:BGCOLOR(#F0F8FF):解説|CENTER:" + FixURL(document.formTDMGenerator.ExplanationURL.value, "リンク" ) + "|"; document.formTDMGenerator.aSource.value = str_a + "\n" + str_b + "\n" + str_c + "\n" + str_d + "\n" + str_e + "\n" + str_f + "\n" + str_g + "\n" + str_h + "\n" + str_i + "\n" + str_j + "\n" + str_k + "\n" + "// " + str_version; } function FixTag() { document.formTDMGenerator.FixTag.value = GetRBValue(document.formTDMGenerator.Hard, document.formTDMGenerator.Hard2.value) + "," + document.formTDMGenerator.GameTitle.value + "," + GetRBValue(document.formTDMGenerator.Play); if(GetRBValue(document.formTDMGenerator.TASVideosStatus, "")) document.formTDMGenerator.FixTag.value += "," + GetRBValue(document.formTDMGenerator.TASVideosStatus, ""); if(FixURL(document.formTDMGenerator.MovieURL.value)) document.formTDMGenerator.FixTag.value += ",ムービー"; if(document.formTDMGenerator.Player.value.length) document.formTDMGenerator.FixTag.value += ",製作" + document.formTDMGenerator.Player.value; document.formTDMGenerator.aSource.value += "\n// タグコピペ用:" + document.formTDMGenerator.FixTag.value; } function FixCopyURL(str) { if(!str.length) return "&tt(){&space(35)}"; if(str.indexOf("http") == -1) return "&tt(){&space(35)}"; if(str.indexOf("youtube") >= 0) return "[[YouTube>" + str + "]]"; return FixURL(str, "リンク"); } function GetRBValue(radio, str) { var i; for(i=0; i < radio.length; i++) if(radio[i].checked) { if(!radio[i].value) return str; return radio[i].value; } } function FixMovFMT() { if(document.formTDMGenerator.URL.value.indexOf("http") == -1) return "||CENTER:BGCOLOR(#F0F8FF):記録|CENTER:&bold(){"; if(document.formTDMGenerator.URL.value.indexOf("nicovideo") > 0) return "|&nicovideo(" + document.formTDMGenerator.URL.value.substring(document.formTDMGenerator.URL.value.indexOf("sm")) + ")|CENTER:BGCOLOR(#F0F8FF):記録|CENTER:&bold(){"; if(document.formTDMGenerator.URL.value.indexOf("youtube") > 0) return "|&youtube(" + document.formTDMGenerator.URL.value + "){342,230}|CENTER:BGCOLOR(#F0F8FF):記録|CENTER:&bold(){"; if(document.formTDMGenerator.URL.value.indexOf("google") > 0) return "|&googlevideo(" + document.formTDMGenerator.URL.value + "){342,230}|CENTER:BGCOLOR(#F0F8FF):記録|CENTER:&bold(){"; return "|" + FixURL(document.formTDMGenerator.URL.value) + "|CENTER:BGCOLOR(#F0F8FF):記録|CENTER:&bold(){"; } function FixPartLink() { var str = ""; if(document.formTDMGenerator.PartLinkURL.value.length) { var str_part = document.formTDMGenerator.PartLinkURL.value.split("\n"); var i, j=0; for(i=0; i < str_part.length; i++) { if(str_part[i].indexOf("http") == -1) continue; if(j > 0) str += ","; str += "[[part" + (j+2) + ">" + DeleteLineFeed(str_part[i]) + "]]"; j++; } } return str; } function FixMylist() { if(document.formTDMGenerator.MylistURL.value.indexOf("mylist") == -1) return ""; var str = document.formTDMGenerator.MylistURL.value.substring(document.formTDMGenerator.MylistURL.value.indexOf("mylist")); return "[[" + str + ">" + document.formTDMGenerator.MylistURL.value + "]]"; } function FixURL(x, str) { if(!x.length) return ""; if(x.indexOf("http") == -1) return ""; if(str) return "[[" + str + ">" + x + "]]"; return x; } function LoadSource() { document.formTDMGenerator.LSStatus.value = ""; error = 0; SourceSplit(); if(error) return false; var i = DustIgnore(); LoadTitle(str_part[i]); LoadRegion(str_part[i]); i++; LoadMovURL(str_part[i]); LoadInfo(str_part[i], document.formTDMGenerator.Record, "記録|CENTER:&bold(){", "}", 18); i++; LoadInfo(str_part[i], document.formTDMGenerator.Count, "追記回数|CENTER:&bold(){", "}", 20); i++; LoadInfo(str_part[i], document.formTDMGenerator.Player, "Player|CENTER:&bold(){", "}", 22); i++; LoadTASVideosURL(str_part[i]); i++; LoadTASVideosStatus(str_part[i]); i++; LoadInfo(str_part[i], document.formTDMGenerator.CopyURL, "転載元|CENTER:", "|", 11); i++; LoadPartLink(str_part[i]); i++; LoadInfo(str_part[i], document.formTDMGenerator.MylistURL, "マイリスト|CENTER:", "|", 13); i++; LoadInfo(str_part[i], document.formTDMGenerator.MovieURL, "Movieファイル|CENTER:", "|", 17); i++; LoadInfo(str_part[i], document.formTDMGenerator.ExplanationURL, "解説|CENTER:", "|", 10); LoadInfo(str_part[i], document.formTDMGenerator.Remarks, "|", "|", 1); LoadTag(str_part); document.formTDMGenerator.LSStatus.value = "読み込み完了"; } function LoadTASVideosURL(str) { if(document.formTDMGenerator.TASVideosURL.value.length) return false; var stpn, stpne, str_b; if(str.indexOf("TAS本家") >= 0) stpn = str.indexOf("TAS本家") + 16; if(str.indexOf("TASVideos") >= 0) stpn = str.indexOf("TASVideos") + 20; stpne = str.indexOf("|", stpn); str_b = Duster(str.substring(stpn, stpne)); if(str_b.indexOf("&space") >= 0) { form.value = ""; return false; } if(str_b.indexOf("http") > 0) { stpn = str_b.indexOf("http"); stpne = str_b.indexOf("]", stpn); str = str_b; } document.formTDMGenerator.TASVideosURL.value = Duster(str.substring(stpn, stpne)); } function LoadTag(str) { var str_spl; var stpn, stpne; for(var i=0; i < str.length; i++) { str_spl = str[i].split(","); if(str_spl.length > 3) if(str_spl[0].length < 5 || str_spl[0].indexOf("タグコピペ用") > 0) { stpn = str_spl[0].indexOf("タグコピペ用"); if(stpn > 0) str_spl[0] = str_spl[0].substring(stpn + 7); SetRB(document.formTDMGenerator.Hard, str_spl[0], document.formTDMGenerator.Hard2); document.formTDMGenerator.GameTitle.value = str_spl[1]; SetRB(document.formTDMGenerator.Play, str_spl[2]); for(var j=3; j < str_spl.length; j++) if(str_spl[j] == "published" || str_spl[j] == "rejected" || str_spl[j] == "cancelled" || str_spl[j] == "obsoleted") { SetRB(document.formTDMGenerator.TASVideosStatus, str_spl[j]); return; } document.formTDMGenerator.TASVideosStatus[0].checked = true; return; } } } function SetRB(rb, str, rb2) { if(!str) return; var i; for(i=0; i < rb.length; i++) if(rb[i].value == str) { rb[i].checked = true; return; } rb[i-1].checked = true; rb2.value = str; } function SourceSplit() { if(!document.formTDMGenerator.bSource.value.length) return Error("ソースエラー"); str_part = document.formTDMGenerator.bSource.value.split("\n"); } function DustIgnore() { var i; for(i=0; i < str_part.length; i++) { if(str_part[i].length > 20) break; } if(i >= str_part.length) return Error("ソースエラー"); return i; } function LoadTitle(str) { if(document.formTDMGenerator.MovTitle.value.length) return false; var stpn, stpne; stpn = str.indexOf("page="); stpne = str.indexOf(",", stpn); document.formTDMGenerator.MovTitle.value = str.substring(stpn + 5, stpne); } function LoadMovURL(str) { if(document.formTDMGenerator.URL.value.length) return false; if(str.indexOf("http") == -1) if(str.indexOf("&nicovideo(sm") == -1) return ""; var stpn, stpne, stpnex; if(str.indexOf("&nicovideo") >= 0) { stpn = str.indexOf("&nicovideo"); stpnex = str.indexOf("sm", stpn); stpne = str.indexOf(")", stpnex); document.formTDMGenerator.URL.value = "http://www.nicovideo.jp/watch/" + str.substring(stpnex, stpne); } else if(str.indexOf("&youtube") >= 0) { stpn = str.indexOf("&youtube"); stpne = str.indexOf(")", stpn); document.formTDMGenerator.URL.value = str.substring(stpn + 9, stpne); } else if(str.indexOf("&googlevideo") >=0) { stpn = str.indexOf("&googlevideo"); stpne = str.indexOf(")", stpn); document.formTDMGenerator.URL.value = str.substring(stpn + 13, stpne); } else return str; } function LoadRegion(str) { if(str.indexOf("{海外版}") > 0) document.formTDMGenerator.Region[1].checked = true; else if(str.indexOf("{国内版}") > 0) document.formTDMGenerator.Region[0].checked = true; else document.formTDMGenerator.Region[2].checked = true; } function LoadTASVideosStatus(str) { if(str.indexOf("published") > 0) document.formTDMGenerator.TASVideosStatus[1].checked = true; else if(str.indexOf("rejected") > 0) document.formTDMGenerator.TASVideosStatus[2].checked = true; else if(str.indexOf("cancelled") > 0) document.formTDMGenerator.TASVideosStatus[3].checked = true; else if(str.indexOf("obsoleted") > 0) document.formTDMGenerator.TASVideosStatus[4].checked = true; else document.formTDMGenerator.TASVideosStatus[0].checked = true; } function LoadPartLink(str) { if(document.formTDMGenerator.PartLinkURL.value.length) return false; var stpn, stpne = 0; var str_pl = ""; while(str.indexOf("http", stpne) > 0) { stpn = str.indexOf("http", stpne); stpne = str.indexOf("]", stpn); str_pl += str.substring(stpn, stpne) + "\n"; } document.formTDMGenerator.PartLinkURL.value = str_pl; } function LoadInfo(str, form, str_stpn, str_stpne, stpn_plus) { if(form.value.length) return false; var stpn, stpne, str_b; stpn = str.indexOf(str_stpn) + stpn_plus; stpne = str.indexOf(str_stpne, stpn); str_b = Duster(str.substring(stpn, stpne)); if(str_b.indexOf("&space") >= 0) { form.value = ""; return false; } if(str_b.indexOf("http") > 0) { stpn = str_b.indexOf("http"); stpne = str_b.indexOf("]", stpn); str = str_b; } form.value = Duster(str.substring(stpn, stpne)); } function Duster(str) { if(str == "-") return ""; return str; } function Error(msg) { document.formTDMGenerator.LSStatus.value = msg; error = 1; } function DeleteLineFeed(myLen) { var newLen = ''; for(var i=0; i<myLen.length; i++) { text = escape(myLen.substring(i, i+1)); if(text != "%0D" && text != "%0A") newLen += myLen.substring(i, i+1); } return(newLen); } function CopyToClipboard(clip) { var str_ua = navigator.userAgent.toLowerCase(); if(str_ua.indexOf("msie") >= 0) window.clipboardData.setData("text" ,clip); } function MakeNewpage() { CopyToClipboard(document.formTDMGenerator.aSource.value); if(!document.formTDMGenerator.FixTitle.value.length) return false; var utf_8_pagename = encodeURIComponent(document.formTDMGenerator.FixTitle.value); var url_newpage = "http://www33.atwiki.jp/tasdouga/?page=" + utf_8_pagename + "&submit=%E6%96%B0%E8%A6%8F%E4%BD%9C%E6%88%90&cmd=edit"; window.open(url_newpage); } // --></script> <form name="formTDMGenerator"><table> <tr><td style="background:#FFCCCC">動画タイトル ※必須</td> <td colspan="5"><input type="text" size="70" name="MovTitle"></td></tr> <tr><td style="background:#FFCCCC">動画URL ※必須</td> <td colspan="5"><input type="text" size="70" name="URL"></td></tr> <tr><td style="background:#FFCCCC">ゲームタイトル ※必須</td> <td colspan="5"><input type="text" size="70" name="GameTitle"></td></tr> <tr><td style="background:#F0F8FF">リージョン</td> <td colspan="5"><input type="radio" name="Region" value="国内版" checked>国内版 <input type="radio" name="Region" value="海外版">海外版 <input type="radio" name="Region" value="">不明</td></tr> <tr><td style="background:#FFCCCC">機種 ※必須</td> <td colspan="5"><input type="radio" name="Hard" value="FC" checked>FC <input type="radio" name="Hard" value="FDS">FDS <input type="radio" name="Hard" value="SFC">SFC <input type="radio" name="Hard" value="N64">N64 <input type="radio" name="Hard" value="GB">GB <input type="radio" name="Hard" value="GBA">GBA <input type="radio" name="Hard" value="NDS">NDS<br> <input type="radio" name="Hard" value="PS">PS <input type="radio" name="Hard" value="MD">MD <input type="radio" name="Hard" value="PCE">PCE <input type="radio" name="Hard" value="">その他 <input type="text" name="Hard2" size="14"></td></tr> <tr><td style="background:#FFCCCC">動画内容 ※必須</td> <td colspan="5"><input type="radio" name="Play" value="最速" checked>最速 <input type="radio" name="Play" value="過去">過去最速 <input type="radio" name="Play" value="その他">その他</td></tr> <tr><td style="background:#F0F8FF">記録</td> <td><input type="text" size="14" name="Record"></td> <td style="background:#F0F8FF">追記回数</td> <td><input type="text" size="14" name="Count"></td> <td style="background:#F0F8FF">Player</td> <td><input type="text" size="14" name="Player"></td></tr> <tr><td style="background:#F0F8FF">TASVideosページURL</td> <td colspan="5"><input type="text" size="70" name="TASVideosURL"></td></tr> <tr><td style="background:#F0F8FF">TASVideosStatus</td> <td colspan="5"> <input type="radio" name="TASVideosStatus" value="" checked>なし <input type="radio" name="TASVideosStatus" value="published">published <input type="radio" name="TASVideosStatus" value="rejected">rejected <input type="radio" name="TASVideosStatus" value="cancelled">cancelled <input type="radio" name="TASVideosStatus" value="obsoleted">obsoleted</td></tr> <tr><td style="background:#F0F8FF">転載元URL</td> <td colspan="5"><input type="text" size="70" name="CopyURL"></td></tr> <tr><td style="background:#F0F8FF">分割リンクURL</td> <td colspan="5"><textarea name="PartLinkURL" cols="70" rows="3"></textarea></td></tr> <tr><td style="background:#F0F8FF">マイリストURL</td> <td colspan="5"><input type="text" size="70" name="MylistURL"></td></tr> <tr><td style="background:#F0F8FF">MovieファイルURL</td> <td colspan="5"><input type="text" size="70" name="MovieURL"></td></tr> <tr><td style="background:#F0F8FF">解説URL</td> <td colspan="5"><input type="text" size="70" name="ExplanationURL"></td></tr> <tr><td style="background:#F0F8FF">備考</td> <td colspan="5"><input type="text" size="70" name="Remarks"></td></tr> </table> <p>読み込み用ソース <input type="button" value="ソース読込" onclick="LoadSource()"> <input type="text" size="20" name="LSStatus" readonly><br> <textarea name="bSource" cols="80" rows="3"></textarea></p> <input type="button" value="ソース作成" onclick="Generate()"> <input type="button" value="クリア" onclick="Clear()"><br> <input type="button" value="新規ページ作成 / 編集ページへ" onclick="MakeNewpage()"> <p>ページタイトル <input type="button" value="コピー(IE用)" onclick="CopyToClipboard(FixTitle.value)"><br> <input type="text" size="80" name="FixTitle"></p> <p>ソース <input type="button" value="コピー(IE用)" onclick="CopyToClipboard(aSource.value)"><br> <textarea name="aSource" cols="80" rows="20"></textarea></p> <p>タグ <input type="button" value="コピー(IE用)" onclick="CopyToClipboard(FixTag.value)"><br> <input type="text" size="80" name="FixTag"></p> </form> }} ---- **使い方 [[ニコニコ動画の動画ページの作り方]]を参考に入力してください 分割リンクは1リンクごとに改行して入力してください 動画タイトルの半角「)」は全角「)」に変換されます 各URLは@wikiの文法にせず、そのまま入力してください 読み込み用ソースに既存ページのソースをコピペして「ソース読込」を押すと 有効な情報は自動的に入力されます すでに入力している欄は無視されます(ラジオボタン除く) 古いページのソースからはゲームタイトル、機種、動画内容は入力されませんので手動で入力してください 尚、これらはタグの作成に使用されますが、ソース作成とは関係ない為、無入力でもソースは問題なく出力されます 「ソース作成」を押すと作成されたページ名、ソース、タグが出力されます 「新規ページ作成 / 編集ページへ」を押すと出力されたページタイトル入力済の新規ページ作成が開きます 既にページが存在している場合は編集ページとなります(IEのみソースが自動的にクリップボードにコピーされます) ソースとタグをコピペすれば完成です ***タグ編集について注意 タグを編集して保存せずにプレビューすると編集分は適用されず、編集前の状態に戻るようです とりあえず保存してしまうか、プレビュー後にタグ編集するようにしてください タグにスペースを付けると別のタグ扱いです 例:「FC」と「FC 」は別のタグ 最後の「,」を付けないタグでご注意ください ***TASVideosに提出された物とムービファイルがある物はページ名の付け方が異なります 手動で「ゲームタイトル in 記録 by プレイヤー」と変更してください よくわからない場合は弄らずにそのままで作成してください