Greasy Fork is available in English.

VivifyGmail

Keep your POP3 account in Gmail up to date

スクリプトをインストールするには、Tampermonkey, GreasemonkeyViolentmonkey のような拡張機能のインストールが必要です。

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

スクリプトをインストールするには、TampermonkeyViolentmonkey のような拡張機能のインストールが必要です。

スクリプトをインストールするには、TampermonkeyUserscripts のような拡張機能のインストールが必要です。

このスクリプトをインストールするには、Tampermonkeyなどの拡張機能をインストールする必要があります。

このスクリプトをインストールするには、ユーザースクリプト管理ツールの拡張機能をインストールする必要があります。

(ユーザースクリプト管理ツールは設定済みなのでインストール!)

このスタイルをインストールするには、Stylusなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus などの拡張機能をインストールする必要があります。

このスタイルをインストールするには、Stylus tなどの拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

このスタイルをインストールするには、ユーザースタイル管理用の拡張機能をインストールする必要があります。

(ユーザースタイル管理ツールは設定済みなのでインストール!)

このスクリプトの質問や評価の投稿はこちら通報はこちらへお寄せください
// ==UserScript==
// @name         VivifyGmail
// @namespace    https://github.com/jonas0616/vivifygmail
// @version      0.1.3
// @description  Keep your POP3 account in Gmail up to date
// @author       jonas0616
// @grant        none
// @include      https://mail.google.com/*
// @license      Apache License 2.0
// ==/UserScript==

(function () { // eslint-disable-line func-names
  'use strict'; // eslint-disable-line

  function refresh(refreshUrl) {
    // console.log(`VivifyGamil: refresh ${refreshUrl}`);
    const fetchInit = {
      method: 'POST',
      headers: new Headers(),
      credentials: 'include',
    };
    fetch(refreshUrl, fetchInit).then(data => {
      // console.log(data);
    }).catch(e => {
      console.log(e);
    });
  }

  Promise.resolve()
    .then(() => new Promise((resolve) => {
      const id = setInterval(() => {
        if (window.GM_ACTION_TOKEN !== undefined &&
            window.GLOBALS !== undefined) {
          clearInterval(id);
          resolve();
        }
      }, 5000);
    }))

    .then(() => {
      const l = window.location;
      const url = `${l.origin}${l.pathname}`;
      const at = window.GM_ACTION_TOKEN;
      const ik = window.GLOBALS[9];
      const refreshUrl = `${url}?ik=${ik}&&at=${at}&view=up&act=par&rt=j`;

      refresh(refreshUrl);
      // repeat by one minute
      window.setInterval(refresh, 60000, refreshUrl);
    });
}());