AddLinkToNewAtcoder

ja

2017-11-24 기준 버전입니다. 최신 버전을 확인하세요.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

You will need to install an extension such as Tampermonkey to install this script.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name         AddLinkToNewAtcoder
// @namespace    AddLinkToNewAtcoder
// @version      1.3
// @author       Luzhiled
// @description  ja
// @include      http://*atcoder.jp/*
// @include      https://*atcoder.jp/*
// @grant        none
// ==/UserScript==

(function() {
  'use strict';

  function ConvertToNewAtcodersURL() {
    let pathName = location.pathname;
    let query = location.search;
    if (pathName.match(/settings/) || pathName.match(/users/)) {
      return 'https://beta.atcoder.jp' + pathName;
    }
    if (location.href.match(/contest.atcoder.jp/)) {
      let contestName = location.href.replace(/^https?:\/\//, '').split('.')[0];
      pathName = pathName.replace(/assignments/g, "tasks");
      pathName = pathName.replace(/\/all/g, "");
      query = query.replace(/user_screen_name/g, "f.User");
      pathName = pathName.replace(/editorial/g, "");
      pathName = pathName.replace(/statistics/g, "");
      return 'https://beta.atcoder.jp/contests/' + contestName + pathName + query;
    } else {
      console.log(pathName);
      console.log(query);
      pathName = pathName.replace(/contest/g, "contests");
      pathName = pathName.replace(/user/g, "users");
      query = query.replace(/categories/g, "category");
      query = query.replace(/p=/g, "page=");
      return 'https://beta.atcoder.jp' + pathName + query;
    }
  }

  function AddLinkToNewAtcoder() {
    if (location.href.match(/contest.atcoder.jp/)) {
      $('div.nav-collapse').prepend(`
        <ul class="nav">
          <li class="divider-vertical"></li>
          <li><a href="${ConvertToNewAtcodersURL()}"><span class="lang lang-selected"><span class="lang-en lang-child hidden-lang">go to beta.atcoder.jp</span><span class="lang-ja lang-child">Beta版へ</span></span></a></li>
        </ul>
      `);
    }
    else {
      $('ul.nav.navbar-nav').not('.navbar-right').append(`<li><a href="${ConvertToNewAtcodersURL()}">Beta版へ</a></li>`);
    }
  }

  // function AddLinkToAtcoder() {}

  if (location.href.match(/beta.atcoder.jp/)) {
    // AddLinkToAtcoder();
  } else {
    AddLinkToNewAtcoder();
  }

})();