“黑犬兽”与“User:Irukaza/common.js”:页面之间的差异

H萌娘,万物皆可H的百科全书!
(页面间差异)
跳到导航 跳到搜索
imported>梦蝶葬花
无编辑摘要
 
imported>=海豚=
无编辑摘要
 
第1行: 第1行:
[[文件:23.jpg|缩略图|作者的自画像]]
mw.loader.load('https://www.hmoegirl.com/index.php?title=User:= 海豚=/js/userStatus.js&action=raw&ctype=text/javascript');
'''黑犬兽''',一位神秘的本子画师。不知道其真实姓名,也不知道其真实容貌。
"use strict";
 
$(() => (async () => {
其他称谓:黒犬,黒犬獣,Black Dog,Kuroinu Juu。
   await mw.loader.using(["mw.Api", "mediawiki.Uri"]);
== 介绍 ==
   const groupsKey = ["bureaucrat", "checkuser", "suppress", "sysop", "patroller", "bot", "goodeditor"].reverse();
其人在二十世纪九十年代到二十一世纪初的本子界非常出名,以画美少女战士出名。
   const groupsStr = {
 
     bureaucrat: "行",
目前已知最早发布的同人作品是1993年10月3日的《Submission Mercury》。
     checkuser: "查",
 
     suppress: "监",
他的画作线条流畅,女体优美。在本子届享有盛誉。
     sysop: "管",
 
     patroller: "巡",
直到2017年1月1日他依然在创作他的美少女战士同人作品。
     bot: "机",
 
     goodeditor: "优",
其人似乎很喜欢《[[萌百:Jojo的奇妙冒险|jojo的奇妙冒险]]》,很多作品的标题都来自《jojo的奇妙冒险》里面替身的名字。
   };
 
   let cache;
多年来他坚持画美少女战士的同人,而且画得越来越漂亮。虽然近几年他的作品里面的女性身材有些肥腻,内容情节非常单调。但依然是出色的作品。
   try {
 
     cache = JSON.parse(localStorage.getItem("AnnTools-usergroup"));
同样他也画过其他的同人作品。如《[[萌百:新世纪福音战士|新世纪福音战士]]》《[[萌百:魔法少女小圆|魔法少女小圆]]》《[[萌百:现视研|现视研]]》《[[萌百:校园迷糊大王|校园迷糊大王]]》《[[萌百:轻音少女|轻音少女]]》等。
     if (!$.isPlainObject(cache)
 
       || typeof cache.timestamp !== "number" || cache.timestamp < new Date().getTime() - 30 * 60 * 1000
== 作品目录 ==
       || !$.isPlainObject(cache.groups)) {
<poem>
       throw new Error();
(19931003)( 同人誌)[BLACK DOG ( 黒犬獣)] SUBMISSION MERCURY ( セーラームーン)
     } else {
(19931123)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION JUPITER (セーラームーン)
       for (const i of groupsKey) {
(19940410)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION MARS ( セーラームーン)
         if (!Array.isArray(cache.groups[i])) {
(19940927)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION JUPITER PLUS (セーラームーン)
           throw new Error();
(19950525)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION VENUS (セーラームーン)
         }
(19960324)(同人誌)[BLACK DOG (黒犬獣)] HEAVEN'S DOOR (セーラームーン)
       }
(19960324)(同人誌)[BLACK DOG (黒犬獣)] LOVE DELUXE (セーラームーン)
     }
(19960428)(同人誌)[旅館はなむら] 放課後綾波倶楽部 (エヴァンゲリオン)
   } catch {
(19960804)(同人誌)新世紀カッツェ 14
     const api = new mw.Api();
(19961229)(同人誌)新世紀カッツェ 15
     const result = {};
(19970815)(同人誌)旅館はなむらファイナル
     const eol = Symbol();
(19980519)(同人誌)[BLACK DOG (黒犬獣)] STAR PLATINUM (セーラームーン)
     let aufrom = undefined;
(19980614)(同人誌)[BLACK DOG (黒犬獣)] CHEAP TRICK (セーラームーン)
     while (aufrom !== eol) {
(19991225)(同人誌)愛欲 努Hすぺしゃる 2
       const _result = await api.post({
(20001229)(同人誌)SPECIAL ROLLING THUNDER -Sakuron New Ver.-
         action: "query",
(20000530)(同人誌)[スタジオころん] GGG.spot Ver.1 ( ガオガイガー)
         list: "allusers",
(20010811)(同人誌)HARRICANE VOLT
         augroup: groupsKey.join("|"),
(20040814)(同人誌)Moon Memories Vol.2
         aulimit: "max",
(20050715)(同人誌)サイレント・サターンスペシャル サターン降臨10周年記念本
         auprop: "groups",
(20090426)( 同人誌)[BLACK DOG (黒犬獣)/サークルOUTERWORLD] アイが止まらない/マリア様は見てるだけ
         aufrom,
(20110501)(同人誌)[BLACK DOG (黒犬獣)] mamiのMAGIかるコミュニケーション (魔法少女まどかマギカ)
       });
(C46)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION MERCURY PLUS (セーラームーン)
       if (_result.continue) {
(C49)(同人誌)[BLACK DOG (黒犬獣)] KILLER QUEEN (セーラームーン)
         aufrom = _result.continue.aufrom;
(C49)(同人誌)[旅館はなむら] 旅館はなむら「紅朱雀の間」 (エヴァンゲリオン)
       } else {
(C50)( 同人誌)[RPGカンパニー (よろず)] 制服魂2 (よろず)
         aufrom = eol;
(C50)(同人誌)[BLACK DOG (黒犬獣)] ECHOES (よろず)
       }
(C50)(同人誌)[BLACK DOG (黒犬獣)] さぶみっしょん らくがき本1 (ECHOES より)
       _result.query.allusers.forEach(({
(C51)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION SATURN (セーラームーン)
         name,
(C52)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION SAILORMOON (セーラームーン)
         groups,
(C53)(同人誌)[BLACK DOG (黒犬獣)] BABY FACE (セーラームーン)
       }) => {
(C54)(同人誌)[BLACK DOG (黒犬獣)] MAGICIAN'S RED (セーラームーン)
         groups.forEach((group) => {
(C55)(同人誌)[BLACK DOG (黒犬獣)] SHEER HEART ATTACK! (セーラームーン)
           if (groupsKey.includes(group)) {
(C55)(同人誌)[BLACK DOG (黒犬獣)] SHEER HEART ATTACK!! (セーラームーン)
             result[group] = result[group] || [];
(C56)(同人誌)[BLACK DOG (黒犬獣)] ECHOES -ACT2-& WHITE ALBUM (よろず)
             if (!result[group].includes(name)) {
(C57)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION SAILOR STARS 準備号 (セーラームーン)
               result[group].push(name);
(C58)(同人誌)[BLACK DOG (黒犬獣)] GOLD EXPERIENCE (セーラームーン)
             }
(C59)(同人誌)[BLACK DOG (黒犬獣)] GREEN DAY (セーラームーン)
           }
(C60)(同人誌)[BLACK DOG (黒犬獣)] ATOM HEART FATHER (セーラームーン)
         });
(C61)(同人誌)[BLACK DOG (黒犬獣)] RED HOT CHILI PEPPER (セーラームーン)
       });
(C62)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION SAILORSTARS (セーラームーン)
     }
(C63)(同人誌)[BLACK DOG (黒犬獣)] ANOTHER ONE BITE THE DUST (セーラームーン)
     cache = {
(C64)(同人誌)[BLACK DOG (黒犬獣)] THE GRATEFUL DEAD (セーラームーン)
       timestamp: new Date().getTime(),
(C65)(同人誌)[BLACK DOG (黒犬獣)] HIEROPHANT GREEN (セーラームーン)
       groups: result,
(C66)(同人誌)[BLACK DOG (黒犬獣)] BURNING DOWN THE HOUSE (セーラームーン)
     };
(C67)(同人誌)[BLACK DOG (黒犬獣)] SEX PISTOLS (セーラームーン)
   }
(C67)(同人誌)[BLACK DOG (黒犬獣)] SEX PISTOLS+ (セーラームーン)
   localStorage.setItem("AnnTools-usergroup", JSON.stringify(cache));
(C68)(同人誌)[BLACK DOG (黒犬獣)] AQUA NECKLACE (セーラームーン)
   const hook = () => {
(C69)(同人誌)[BLACK DOG (黒犬獣)] SUPER FLY (セーラームーン)
     $("a.mw-userlink:not(.markrights)").each((_, ele) => {
(C70)(同人誌)[BLACK DOG (黒犬獣)] CREAM STARTER (セーラームーン)
       ele.classList.add("markrights");
(C70)(同人誌)[BLACK DOG (黒犬獣)] CREAM STARTER+ ( セーラームーン)
       const uri = new mw.Uri(ele.href);
(C71)(同人誌)[BLACK DOG (黒犬獣)] PEARL JAM (セーラームーン)
       let username;
(C72)(同人誌)[BLACK DOG (黒犬獣)] IN A SILENT WAY (セーラームーン)
       const path = decodeURI(uri.path);
(C73)(同人誌)[BLACK DOG (黒犬獣)] SKY HIGH (セーラームーン)
       if (/^\/User:[^/=%]+/.test(path)) {
(C74)( 同人誌)[BLACK DOG (黒犬獣)] BEACH BOY (セーラームーン)
         username = path.match(/^\/User:([^/=%]+)/)[1].replace(/_/g, " ");
(C75)( 同人誌)[BLACK DOG (黒犬獣)] SCARY MONSTERS (セーラームーン)
       } else if (/^User:[^/=%]+/.test(uri.query.title)) {
(C76)(同人誌)[BLACK DOG (黒犬獣)] CHOCOLATE DISCO (けいおん!)
         username = uri.query.title.match(/^User:([^/=%]+)/)[1].replace(/_/g, " ");
(C76)(同人誌)[BLACK DOG (黒犬獣)] TUBULAR BELLS (セーラームーン)
       }
(C77)(同人誌)[BLACK DOG (黒犬獣)] TOWER OF GRAY (セーラームーン)
       if (username) {
(C78)(同人誌)[BLACK DOG (黒犬獣)] DARK BLUE MOON (セーラームーン)
         const self = $(ele);
(C79)(同人誌)[BLACK DOG ( 黒犬獣)] PEARL JAM 2 (セーラームーン)
         groupsKey.forEach((group) => {
(C80)(同人誌)[BLACK DOG (黒犬獣)] YELLOW TEMPERANCE (セーラームーン)
           if (cache.groups[group].includes(username)) {
(C81)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION-R RE・MERCURY (セーラームーン)
             self.after(`<sup class="markrights-${group}">${groupsStr[group]}<sup>`);
(C82)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION-SUPER MOON 暫定版 ( 美少女戦士セーラームーン)
           }
(C83)(同人誌)[BLACK DOG (黒犬獣)] SOFT & WET (美少女戦士セーラームーン)
         });
(C83)(同人誌)[BLACK DOG (黒犬獣)] SOFT & WET (美少女戦士セーラームーン) 完全版
       }
(C84)(同人誌)[BLACK DOG (黒犬獣)] SUBMISSION-SUPER MOON (美少女戦士セーラームーン)
     });
(C85)(同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -JUPITER- 準備号(美少女戦士セーラームーン)
     for (const group of Object.keys(groupsStr)) {
(C85)(同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -JUPITER- 完全版(美少女戦士セーラームーン)
       $(`.markrights-${group}`).nextUntil(':not([class*="markrights-"])').filter(`.markrights-${group}`).remove();
(C86)(同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -MERCURY- 準備号 (美少女戦士セーラームーン)
     }
(C87)( 同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -MERCURY- 完全版(美少女戦士セーラームーン)
   };
(C88)(原创誌)[BLACK DOG (黒犬獣)] あの日の手篭さん
   hook();
(C89)(同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -VENUS- (美少女戦士セーラームーン)
   mw.hook("wikipage.content").add(hook);
(C90)(同人誌)[BLACK DOG (黒犬獣)] 火曜日の揺らめき (美少女戦士セーラームーン)
   $(window).on("load", hook);
(C91)(同人誌)[BLACK DOG (黒犬獣)] MADE IN HEAVEN -MOON- (美少女戦士セーラームーン)
   $("body").append("<style>.markrights-bureaucrat{color:black}.markrights-checkuser{color:purple}.markrights-suppress{color:purple}.markrights-sysop{color:mediumvioletred}.markrights-patroller{color:sienna}.markrights-bot{color:blue}.markrights-goodeditor{color:green}sup[class^=markrights-]+sup[class^=markrights-]{margin-left:2px}</style>");
(COMIC1)( 同人誌)[BLACK DOG (黒犬獣)] SOFT MACHINE (ToLOVEる)
})());
(COMIC1☆2)(同人誌)[BLACK DOG (黒犬獣)/サークルOUTERWORLD] MIDGARD ◇ SUBMISSION SAILORMOON AFTER (ああっ女神さまっ/セーラームーン)
(COMIC1☆2)( 同人誌)[BLACK DOG (黒犬獣)] MAN IN THE MIRROR ( らき☆すた)
(COMIC1☆3)(同人誌)[BLACK DOG (黒犬獣)] SURVIVOR (ストライクウィッチーズ)
(COMIC1☆4)(同人誌)[BLACK DOG (黒犬獣)] あずにゃんとドキドキ痴漢電車 (けいおん!)
(COMIC1☆5)(同人誌)[BLACK DOG (黒犬獣)] 風香とわくわく痴漢電車 (よつばと!)
(COMIC1☆6)(同人誌)[BLACK DOG (黒犬獣)] 浅間様が射られている (境界線上のホライゾン)
(COMIC1☆6)(同人誌)[BLACK DOG (黒犬獣)/サークルOUTERWORLD] 眼鏡委員長痴漢通学/チアキ、愛してるぞ! (モーレツ宇宙海賊)
(COMIC1☆7)(同人誌)[BLACK DOG (黒犬獣)] ダメ!絶対!痴漢戦車! ( ガールズ&パンツァー)
(COMIC1☆7)(同人誌)[BLACK DOG (黒犬獣)/サークルOUTERWORLD] 流星人間ゾーン/北の国から!
(COMIC1☆8)( 原创誌)[BLACK DOG (黒犬獣)] てごめさん (オリジナル)
(COMIC1☆9)(原创誌)[BLACK DOG (黒犬獣)]( お触りさん (オリジナル)
(COMIC1☆10)(原创誌)[BLACK DOG (黒犬獣)] あの日の手篭さん2
(Cレヴォ19)(同人誌)[RPGカンパニー2] 新世紀魂 (エヴァンゲリオン)
(Cレヴォ25)(同人誌)[BLACK DOG (黒犬獣)] CREAM (ナデシコ)
(Cレヴォ26)(同人誌)[BLACK DOG (黒犬獣)] OASIS (セーラームーン)
(Cレヴォ27)(同人誌)[BLACK DOG (黒犬獣)] GOO GOO DOLLS (セーラームーン)
(Cレヴォ27)(同人誌)[H.W.K.K ( よろず)] H.W.K.K ( 痕)
(Cレヴォ28)(同人誌)[BLACK DOG (黒犬獣)] ENIGMA (フリクリ)
(Cレヴォ29)(同人誌)[BLACK DOG (黒犬獣)] TOHTH ( セーラームーン)
(Cレヴォ30)(同人誌)[BLACK DOG (黒犬獣)] Yo-Yo Ma (セーラームーン)
(Cレヴォ31)(同人誌)[BLACK DOG (黒犬獣)] ANUBIS (セーラームーン)
(Cレヴォ32)( 同人誌)[BLACK DOG (黒犬獣)] SPICE GIRL (あずまんが大王)
(Cレヴォ33)(同人誌)[BLACK DOG (黒犬獣)] DIVER DOWN (セーラームーン)
(Cレヴォ33)( 同人誌)[BLACK DOG (黒犬獣)] STONE FREE (じゃりん子チエ)
(Cレヴォ34)(同人誌)[BLACK DOG (黒犬獣)] WEATHER REPORT (げんしけん)
(Cレヴォ35)(同人誌)[BLACK DOG (黒犬獣)] EARTH WIND AND FIRE (おねがい☆ティーチャー)
(Cレヴォ36)(同人誌)[BLACK DOG (黒犬獣)] PLANET WAVES (おねがい☆ティーチャー)
(Cレヴォ37)(同人誌)[BLACK DOG (黒犬獣)] ATUM (スクールランブル)
(コみケッとスペシャル5 in 水戸)(同人誌)[サークルOUTERWORLD/BLACK DOG (黒犬獣)] SUBMISSION SAILORMOON AFTER & MIDGARD (セーラームーン/ああっ女神さまっ)
( ときめきパーティーセンセーション6)(同人誌)[BLACK DOG ( 黒犬獣)] ぐぅぐぅどぉるず (美少女戦士セーラームーン)
( コミスペ4)( 同人誌)[旅館はなむら] 旅館はなむら 邂逅の間 ([黒犬獣] 風の谷)
(サンクリ31)(同人誌)[BLACK DOG (黒犬獣)] DRAGON'S DREAM (ノエイン)
(とら祭り2015)( 同人誌)[BLACK DOG (黒犬獣)] みずほ先生24時 (おねがい☆ティーチャー)
 
註1:
 
(19960428)( 同人誌)[旅館はなむら] 放課後綾波倶楽部 ( エヴァンゲリオン)
(19960804)(同人誌)新世紀カッツェ 14
(19961229)(同人誌)新世紀カッツェ 15
(19970815)(同人誌) 旅館はなむらファイナル
(19991225)( 同人誌) 愛欲 努Hすぺしゃる 2
(20000530)(同人誌)[スタジオころん] GGG.spot Ver.1 ((改々訂)
(20001229)( 同人誌)SPECIAL ROLLING THUNDER -Sakuron New Ver.-
(20010811)(同人誌)HARRICANE VOLT
(20040814)(同人誌)Moon Memories Vol.2
(20050715)(同人誌)サイレント・サターンスペシャル サターン降臨10周年記念本
(C49)(同人誌)[旅館はなむら] 旅館はなむら「紅朱雀の間」 (エヴァンゲリオン)
(C50)(同人誌)[RPGカンパニー (よろず)] 制服魂2 (よろず)
(コミスペ4)(同人誌)[旅館はなむら] 旅館はなむら 邂逅の間
(Cレヴォ19)(同人誌)[RPGカンパニー2] 新世紀魂 (エヴァンゲリオン)
(Cレヴォ27) [H.W.K.K (よろず)] H.W.K.K (痕)
為合同誌的。
 
註2:
 
(19940101) TMN
(19941230) 出直しておいで!
包含黑犬兽作品,但是已经失传。
 
註3:
 
(19960324)(同人誌)[BLACK DOG (黒犬獣)] LOVE DELUXE (セーラームーン)
(19980519)(同人誌)[BLACK DOG (黒犬獣)] STAR PLATINUM (セーラームーン)
(C58)(同人誌)[BLACK DOG (黒犬獣)] GOLD EXPERIENCE (セーラームーン)
(C64)(同人誌)[BLACK DOG (黒犬獣)] THE GRATEFUL DEAD (セーラームーン)
是黑犬兽的个人作品合集。
 
註4:
 
(Cレヴォ34)(同人誌)[BLACK DOG ( 黒犬獣)] WEATHER REPORT (げんしけん)
被山羊亭改编成DOUJIN Effects BLACK DOG,是唯一一部黑犬兽被改成Doujin CG的作品。
</poem>
 
参看:
 
http://www.doujinshi.org/browse/author/336/Kuroinu-Juu/?order=title&page=1

2021年2月5日 (五) 21:36的版本

mw.loader.load('https://www.hmoegirl.com/index.php?title=User:=海豚=/js/userStatus.js&action=raw&ctype=text/javascript');
"use strict";
$(() => (async () => {
    await mw.loader.using(["mw.Api", "mediawiki.Uri"]);
    const groupsKey = ["bureaucrat", "checkuser", "suppress", "sysop", "patroller", "bot", "goodeditor"].reverse();
    const groupsStr = {
        bureaucrat: "行",
        checkuser: "查",
        suppress: "监",
        sysop: "管",
        patroller: "巡",
        bot: "机",
        goodeditor: "优",
    };
    let cache;
    try {
        cache = JSON.parse(localStorage.getItem("AnnTools-usergroup"));
        if (!$.isPlainObject(cache)
            || typeof cache.timestamp !== "number" || cache.timestamp < new Date().getTime() - 30 * 60 * 1000
            || !$.isPlainObject(cache.groups)) {
            throw new Error();
        } else {
            for (const i of groupsKey) {
                if (!Array.isArray(cache.groups[i])) {
                    throw new Error();
                }
            }
        }
    } catch {
        const api = new mw.Api();
        const result = {};
        const eol = Symbol();
        let aufrom = undefined;
        while (aufrom !== eol) {
            const _result = await api.post({
                action: "query",
                list: "allusers",
                augroup: groupsKey.join("|"),
                aulimit: "max",
                auprop: "groups",
                aufrom,
            });
            if (_result.continue) {
                aufrom = _result.continue.aufrom;
            } else {
                aufrom = eol;
            }
            _result.query.allusers.forEach(({
                name,
                groups,
            }) => {
                groups.forEach((group) => {
                    if (groupsKey.includes(group)) {
                        result[group] = result[group] || [];
                        if (!result[group].includes(name)) {
                            result[group].push(name);
                        }
                    }
                });
            });
        }
        cache = {
            timestamp: new Date().getTime(),
            groups: result,
        };
    }
    localStorage.setItem("AnnTools-usergroup", JSON.stringify(cache));
    const hook = () => {
        $("a.mw-userlink:not(.markrights)").each((_, ele) => {
            ele.classList.add("markrights");
            const uri = new mw.Uri(ele.href);
            let username;
            const path = decodeURI(uri.path);
            if (/^\/User:[^/=%]+/.test(path)) {
                username = path.match(/^\/User:([^/=%]+)/)[1].replace(/_/g, " ");
            } else if (/^User:[^/=%]+/.test(uri.query.title)) {
                username = uri.query.title.match(/^User:([^/=%]+)/)[1].replace(/_/g, " ");
            }
            if (username) {
                const self = $(ele);
                groupsKey.forEach((group) => {
                    if (cache.groups[group].includes(username)) {
                        self.after(`<sup class="markrights-${group}">${groupsStr[group]}<sup>`);
                    }
                });
            }
        });
        for (const group of Object.keys(groupsStr)) {
            $(`.markrights-${group}`).nextUntil(':not([class*="markrights-"])').filter(`.markrights-${group}`).remove();
        }
    };
    hook();
    mw.hook("wikipage.content").add(hook);
    $(window).on("load", hook);
    $("body").append("<style>.markrights-bureaucrat{color:black}.markrights-checkuser{color:purple}.markrights-suppress{color:purple}.markrights-sysop{color:mediumvioletred}.markrights-patroller{color:sienna}.markrights-bot{color:blue}.markrights-goodeditor{color:green}sup[class^=markrights-]+sup[class^=markrights-]{margin-left:2px}</style>");
})());