您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Позволяет быстро перейти на СоХабр/SavePearlHarbor, если просматриваемый пост на Хабрахабре, Гиктаймсе или Мегамозге недоступен.
// ==UserScript== // @id SoHabr // @name Всегдабр // @version 0.1.4 // @namespace sohabr // @author leenr <[email protected]> https://sohabr.net/vsegdabr // @author i20664d // @description Позволяет быстро перейти на СоХабр/SavePearlHarbor, если просматриваемый пост на Хабрахабре, Гиктаймсе или Мегамозге недоступен. // @include habrahabr.ru/company/post/* // @include habrahabr.ru/post/* // @include geektimes.ru/company/post/* // @include geektimes.ru/post/* // @include megamozg.ru/company/post/* // @include megamozg.ru/post/* // @run-at document-end // @icon https://greasyfork.org/system/screenshots/screenshots/000/002/738/original/sohabr.png // @resource necontabr https://greasyfork.org/system/screenshots/screenshots/000/002/740/original/necontabr.png // @resource animation https://greasyfork.org/system/screenshots/screenshots/000/002/741/thumb/animated.png // @resource razdolbabr https://greasyfork.org/system/screenshots/screenshots/000/002/739/original/razdolbabr.png // @require https://greasyfork.org/scripts/14604-scriptsettings/code/ScriptSettings.js // @noframes // ==/UserScript== 'use strict'; Notification.requestPermission(); const notifId=('sohabr-всегдабр-скрипт'+Math.random())+Math.random(); let c = new ScriptSettings({ mode : [ 'auto',//Автоматически переходить на СоХабр/SavePearlHarbor 'manual',//Отобразить информацию о посте (заголовок и дату публикации), а также ссылки на СоХабр и SavePearlHarbor 'off'//Не предпринимать никаких действий ], immediatelyRedirect : [!1, 'sohabr', 'savepearlharbor'], dontCheckout : !1, checkoutSoHabr : !0, checkoutSavePearlHarbor : !0, showPostInfo : !0//Показывать заголовок поста и дату его публикации }); function d(a, e) { var b = document.createElement('A'); b.href = a; b.textContent = 'Проследовать на ' + e; document.body.appendChild(b); return b; } function f() { GM_xmlHttpRequest({ method : 'GET', url : 'https://sohabr.net/vsegdabr/check/post/' + g + ':' + h + '/', onload(a) { a = JSON.parse(a); document.getElementById('checking').style.display='none'; var e = !1, b = null; 'sohabr' in a && (d(a.sohabr.url, 'СоХабр'), e = !0, b = a.sohabr.url); 'savepearlharbor' in a && (d(a.savepearlharbor.url, 'SavePearlHarbor'), e = !0, null == b && (b = a.savepearlharbor.url)); if (e) { if ('manual' != c.mode || c.showPostInfo) { document.createElement('time').textContent = a.date_humanlystr, document.createElement('h1').textContent = a.title; } 'auto' == c.mode && (window.top.location.href = b); } else { new Notification('Никогдабр',{body:'К сожалению, Всегдабр не может найти этот пост... :(', icon:GM_getResourceUrl('razdolbabr'), lang:'ru',tag:notifId}); } }, onerror() { new Notification('Неконтабр',{body:'Не получается проверить наличие резервной копии', icon:GM_getResourceUrl('necontabr'), lang:'ru',tag:notifId}); } }); } { if (document.getElementById('reg-wrapper')) { var k = location.pathname.match(/\/(?:company\/.+\/blog|post)?\/(\d+)\//); if (null != k) { var g = null; switch (location.hostname) { case 'habrahabr.ru': g = 'habr'; break; case 'geektimes.ru': ; case 'geektimes.com': g = 'gt'; break; case 'megamozg.ru': g = 'mm'; } var h = Number.parseInt(k[1]), l = c.mode; if (NaN !== h) { var m = d('https://sohabr.net/' + g + '/post/' + h + '/', 'СоХабр'), n = d('http://savepearlharbor.com/?p=' + h, 'SavePearlHarbour'); if ('auto' == l && c.immediatelyRedirect) { var p = null; 'sohabr' == c.immediatelyRedirectTo ? p = m.href : 'habr' == g && (p = n.href); if (null != p) { window.top.location.replace(p); break a; } l = 'manual'; } if ('auto' == l || 'manual' == l && !c.dontCheckout) { new Notification('ГдеХабр?',{body:'Проверка наличия статьи в других источниках', icon:GM_getResourceUrl('animation'), lang:'ru',tag:notifId}); f(); } } else { new Notification('Раздолбабр',{body:'Почему-то ид статьи не является числом', icon:GM_getResourceUrl('razdolbabr'), lang:'ru',tag:notifId}); } } } };