Cookie Clicker clicker
@@ -26,20 +26,15 @@
return Array.prototype.slice.call(document.querySelectorAll(sel));
};
- // X-browser shim
+ // X-browser loose timestamp shim; c.f.
+ // https://gist.github.com/noromanba/6737784
var timestamp = (function() {
- // non-standard JS 1.6, Fx only; c.f.
- // http://compatibility.shwups-cms.ch/en/home/?&&&property=Date.prototype.toLocaleFormat
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleFormat
if (Date.prototype.toLocaleFormat) {
return function() {
return new Date().toLocaleFormat('%Y-%m-%d %T %Z');
};
}
- // Fx not supported yet; c.f.
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
- // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString
if (Date.prototype.toLocaleDateString) {
return function() {
var now = new Date();
@@ -52,6 +47,24 @@
}
})();
+ var log = (function () {
+ if (!console || !console.log) return function () {};
+
+ var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome/') > -1,
+ style = 'color: brown;';
+
+ // '%c': console style
+ // https://developers.google.com/chrome-developer-tools/docs/console-api
+ if (isChrome) {
+ return function (msg) { return console.log('%c' + msg, style); };
+ }
+
+ // Firefox not implemented yet?
+ // https://developer.mozilla.org/en-US/docs/Web/API/console.log
+ // https://developer.mozilla.org/en-US/docs/Web/API/console
+ return function (msg) { return console.log(msg); };
+ })();
+
// MutationObserver - Web API interfaces | MDN
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
@@ -59,7 +72,7 @@
var goldenCookie = document.querySelector('#goldenCookie');
// create an observer instance
- var gcObserver = new MutationObserver(function(mutations, observer) {
+ var gcObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (!isDisplayNone(mutation.target)) {
mutation.target.click();
@@ -70,7 +83,8 @@
}
return popupTxt;
});
- console.log(['clicked Goleden Cookie', timestamp(), popupTxt]);
+
+ log(['*Goleden Cookie was clicked', timestamp(), popupTxt].join(', '));
}
});
});
@@ -78,12 +92,12 @@
// configuration of the observer:
var gcConfig = { attributes: true, attributeFilter: ['style'] };
- //pass in the target node, as well as the observer options
+ // pass in the target node, as well as the observer options
gcObserver.observe(goldenCookie, gcConfig);
// later, you can stop observing
// gcObserver.disconnect();
- console.log('*Cookie Clicker clicker loaded');
+ log('*Cookie Clicker clicker loaded');
})();
/*
* @title Cookie Clicker clicker
* @description auto-click Cookie Clicker( http://orteil.dashnet.org/cookieclicker/ )
* @contributor bouze_me http://let.hatelabo.jp/bouze_me/let/hJmcpKukvYVM
* @contributor saitamanodoruji http://let.hatelabo.jp/saitamanodoruji/let/hLHUpdyt-_4f (Fork of)
* @orig-license Unknown (as-is)
* @contributor noromanba http://let.hatelabo.jp/noromanba/let/hJmcrJfO94ka
* @license TBD
*/
(function() {
//// Auto Click the Big Cookie ////
setInterval(function() {
document.querySelector('#bigCookie').click();
}, 1000/16); // meijin
//// Auto Click Golden Cookies ////
var isDisplayNone = function(node) {
return document.defaultView.getComputedStyle(node).getPropertyValue('display') === 'none';
};
var $q = function(sel) {
return Array.prototype.slice.call(document.querySelectorAll(sel));
};
// X-browser loose timestamp shim; c.f.
// https://gist.github.com/noromanba/6737784
var timestamp = (function() {
if (Date.prototype.toLocaleFormat) {
return function() {
return new Date().toLocaleFormat('%Y-%m-%d %T %Z');
};
}
if (Date.prototype.toLocaleDateString) {
return function() {
var now = new Date();
return now.toLocaleDateString('ja', {
year: 'numeric',
month: '2-digit',
day: '2-digit'
}).replace(/\//g, '-') + ' ' + now.toTimeString();
};
}
})();
var log = (function () {
if (!console || !console.log) return function () {};
var isChrome = navigator.userAgent.toLowerCase().indexOf('chrome/') > -1,
style = 'color: brown;';
// '%c': console style
// https://developers.google.com/chrome-developer-tools/docs/console-api
if (isChrome) {
return function (msg) { return console.log('%c' + msg, style); };
}
// Firefox not implemented yet?
// https://developer.mozilla.org/en-US/docs/Web/API/console.log
// https://developer.mozilla.org/en-US/docs/Web/API/console
return function (msg) { return console.log(msg); };
})();
// MutationObserver - Web API interfaces | MDN
// https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver
// select the target node
var goldenCookie = document.querySelector('#goldenCookie');
// create an observer instance
var gcObserver = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (!isDisplayNone(mutation.target)) {
mutation.target.click();
var popupTxt = '';
$q('#particles > div').some(function(p) {
if (!isDisplayNone(p) && p.textContent !== 'Game saved') {
popupTxt = p.textContent;
}
return popupTxt;
});
log(['*Goleden Cookie was clicked', timestamp(), popupTxt].join(', '));
}
});
});
// configuration of the observer:
var gcConfig = { attributes: true, attributeFilter: ['style'] };
// pass in the target node, as well as the observer options
gcObserver.observe(goldenCookie, gcConfig);
// later, you can stop observing
// gcObserver.disconnect();
log('*Cookie Clicker clicker loaded');
})();
- Permalink
- このページへの個別リンクです。
- RAW
- 書かれたコードへの直接のリンクです。
- Packed
- 文字列が圧縮された書かれたコードへのリンクです。
- Userscript
- Greasemonkey 等で利用する場合の .user.js へのリンクです。
- Loader
- @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
- Metadata
- コード中にコメントで @xxx と書かれたメタデータの JSON です。