コンテンツにスキップ

利用者:Yuukin0248/shortUrlMaker.js

お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。

多くの WindowsLinux のブラウザ

  • Ctrl を押しながら F5 を押す。

Mac における Safari

  • Shift を押しながら、更新ボタン をクリックする。

Mac における ChromeFirefox

  • Cmd Shift を押しながら R を押す。

詳細についてはWikipedia:キャッシュを消すをご覧ください。

/**
 * shortUrlMaker.js
 * ツールボックスの「短縮URLを生成」をクリックすると閲覧中のページへの短縮URLを生成する
 *
 * 関連ページ: [[m:Special:Mylanguage/Wikimedia URL Shortener]]
 */

mw.loader.using(['mediawiki.util', 'mediawiki.ForeignApi', 'mediawiki.widgets', 'oojs-ui']).then(() => {
  /** @type {JQuery.Promise} API から返ってきたデータ */
  let apiData;

  /** @function meta.wikimedia.org の API から短縮URLを取得し、apiData に格納 */
  const getShortURL = () => {
    apiData = new mw.ForeignApi('https://meta.wikimedia.org/w/api.php').post({
      action: 'shortenurl',
      url: location.href,
    });
  };

  $(mw.util.addPortletLink('p-tb', '', '短縮URLを生成')).click((e) => {
    // ページ遷移しない
    e.preventDefault();

    // API からのデータがない場合は取得する
    if (!apiData) getShortURL();

    apiData.done((data) => {
      // ダイアログを表示
      new OO.ui.alert(
        new mw.widgets.CopyTextLayout({
          copyText: data.shortenurl.shorturl,
          label: '短縮URLを生成しました',
          align: 'top',
        }).$element
      );
    });
  });
});