diff --git a/ESGST.meta.js b/ESGST.meta.js index cdb4ba36..b2d5e27b 100644 --- a/ESGST.meta.js +++ b/ESGST.meta.js @@ -1,3 +1,3 @@ // ==UserScript== -// @version 6.Beta.38.0 +// @version 6.Beta.38.1 // ==/UserScript== diff --git a/ESGST.user.js b/ESGST.user.js index c33a6166..5853c6a2 100644 --- a/ESGST.user.js +++ b/ESGST.user.js @@ -3,7 +3,7 @@ // @namespace ESGST // @description Enhances SteamGifts and SteamTrades by adding some cool features to them. // @icon https://dl.dropboxusercontent.com/s/lr3t3bxrxfxylqe/esgstIcon.ico?raw=1 -// @version 6.Beta.38.0 +// @version 6.Beta.38.1 // @author revilheart // @downloadURL https://github.com/revilheart/ESGST/raw/master/ESGST.user.js // @updateURL https://github.com/revilheart/ESGST/raw/master/ESGST.meta.js @@ -56,7 +56,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun !function(t,r){e.exports=r()}(this,function(){"use strict";function e(e){var t=typeof e;return null!==e&&("object"===t||"function"===t)}function i(e){return"function"==typeof e}function s(e){V=e}function o(e){K=e}function u(){return function(){return t.nextTick(l)}}function a(){return"undefined"!=typeof $?function(){$(l)}:h()}function c(){var e=0,t=new Z(l),r=document.createTextNode("");return t.observe(r,{characterData:!0}),function(){r.data=e=++e%2}}function p(){var e=new MessageChannel;return e.port1.onmessage=l,function(){return e.port2.postMessage(0)}}function h(){var e=setTimeout;return function(){return e(l,1)}}function l(){for(var e=0;e=2&&e._responseTimeoutTimer&&clearTimeout(e._responseTimeoutTimer),4==r){var n;try{n=t.status}catch(e){n=0}if(!n){if(e.timedout||e._aborted)return;return e.crossDomainError()}e.emit("end")}};var n=function(t,r){r.total>0&&(r.percent=r.loaded/r.total*100),r.direction=t,e.emit("progress",r)};if(this.hasListeners("progress"))try{t.onprogress=n.bind(null,"download"),t.upload&&(t.upload.onprogress=n.bind(null,"upload"))}catch(e){}try{this.username&&this.password?t.open(this.method,this.url,!0,this.username,this.password):t.open(this.method,this.url,!0)}catch(e){return this.callback(e)}if(this._withCredentials&&(t.withCredentials=!0),!this._formData&&"GET"!=this.method&&"HEAD"!=this.method&&"string"!=typeof r&&!this._isHost(r)){var i=this._header["content-type"],s=this._serializer||v.serialize[i?i.split(";")[0]:""];!s&&a(i)&&(s=v.serialize["application/json"]),s&&(r=s(r))}for(var o in this.header)null!=this.header[o]&&this.header.hasOwnProperty(o)&&t.setRequestHeader(o,this.header[o]);return this._responseType&&(t.responseType=this._responseType),this.emit("request",this),t.send("undefined"!=typeof r?r:null),this},v.get=function(e,t,r){var n=v("GET",e);return"function"==typeof t&&(r=t,t=null),t&&n.query(t),r&&n.end(r),n},v.head=function(e,t,r){var n=v("HEAD",e);return"function"==typeof t&&(r=t,t=null),t&&n.query(t),r&&n.end(r),n},v.options=function(e,t,r){var n=v("OPTIONS",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.del=h,v.delete=h,v.patch=function(e,t,r){var n=v("PATCH",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.post=function(e,t,r){var n=v("POST",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n},v.put=function(e,t,r){var n=v("PUT",e);return"function"==typeof t&&(r=t,t=null),t&&n.send(t),r&&n.end(r),n}},function(e,t){function r(e){return"https://"+e+".dropboxapi.com/2/"}e.exports=r},function(e,t){function r(e){return null!==e&&"object"==typeof e}e.exports=r},function(e,t){function r(e){return JSON.stringify(e).replace(n,function(e){return"\\u"+("000"+e.charCodeAt(0).toString(16)).slice(-4)})}var n=/[\u007f-\uffff]/g;e.exports=r},function(e,t,r){var n,i=r(16);r(15),n=function(e){e=e||{},this.accessToken=e.accessToken,this.clientId=e.clientId,this.selectUser=e.selectUser},n.prototype.setAccessToken=function(e){this.accessToken=e},n.prototype.getAccessToken=function(){return this.accessToken},n.prototype.setClientId=function(e){this.clientId=e},n.prototype.getClientId=function(){return this.clientId},n.prototype.getAuthenticationUrl=function(e,t){var r,n="https://www.dropbox.com/oauth2/authorize",i=this.getClientId();if(!i)throw new Error("A client id is required. You can set the client id using .setClientId().");if(!e)throw new Error("A redirect uri is required.");return r=n+"?response_type=token&client_id="+i,e&&(r=r+"&redirect_uri="+e),t&&(r=r+"&state="+t),r},n.prototype.authenticateWithCordova=function(e,t){var r="https://www.dropbox.com/1/oauth2/redirect_receiver",n=this.getAuthenticationUrl(r),i=window.open(n,"_blank"),s=!1,o=function(e){window.setTimeout(function(){i.close()},10),t()},u=function(r){var n="&error=",s=r.url.indexOf(n);if(s>-1)window.setTimeout(function(){i.close()},10),t();else{var o="#access_token=",u=r.url.indexOf(o),a=r.url.indexOf("&token_type=");if(u>-1){u+=o.length,window.setTimeout(function(){i.close()},10);var c=r.url.substring(u,a);e(c)}}},a=function(e){s||(i.removeEventListener("loaderror",o),i.removeEventListener("loadstop",u),i.removeEventListener("exit",a),s=!0)};i.addEventListener("loaderror",o),i.addEventListener("loadstop",u),i.addEventListener("exit",a)},n.prototype.request=function(e,t,r,n,s){var o=null;switch(s){case i.RPC:o=this.getRpcRequest();break;case i.DOWNLOAD:o=this.getDownloadRequest();break;case i.UPLOAD:o=this.getUploadRequest();break;default:throw new Error("Invalid request style: "+s)}return o(e,t,r,n,this.getAccessToken(),this.selectUser)},n.prototype.setRpcRequest=function(e){n.prototype.rpcRequest=e},n.prototype.getRpcRequest=function(){return void 0===n.prototype.rpcRequest&&(n.prototype.rpcRequest=r(18)),n.prototype.rpcRequest},n.prototype.setDownloadRequest=function(e){n.prototype.downloadRequest=e},n.prototype.getDownloadRequest=function(){return void 0===n.prototype.downloadRequest&&(n.prototype.downloadRequest=r(13)),n.prototype.downloadRequest},n.prototype.setUploadRequest=function(e){n.prototype.uploadRequest=e},n.prototype.getUploadRequest=function(){return void 0===n.prototype.uploadRequest&&(n.prototype.uploadRequest=r(19)),n.prototype.uploadRequest},e.exports=n},function(e,t,r){function n(e){if(e)return i(e)}function i(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}e.exports=n,n.prototype.on=n.prototype.addEventListener=function(e,t){return this._callbacks=this._callbacks||{},(this._callbacks["$"+e]=this._callbacks["$"+e]||[]).push(t),this},n.prototype.once=function(e,t){function r(){this.off(e,r),t.apply(this,arguments)}return r.fn=t,this.on(e,r),this},n.prototype.off=n.prototype.removeListener=n.prototype.removeAllListeners=n.prototype.removeEventListener=function(e,t){if(this._callbacks=this._callbacks||{},0==arguments.length)return this._callbacks={},this;var r=this._callbacks["$"+e];if(!r)return this;if(1==arguments.length)return delete this._callbacks["$"+e],this;for(var n,i=0;i1)for(var r=1;r=200&&e.status<300)},n.prototype.get=function(e){return this._header[e.toLowerCase()]},n.prototype.getHeader=n.prototype.get,n.prototype.set=function(e,t){if(s(e)){for(var r in e)this.set(r,e[r]);return this}return this._header[e.toLowerCase()]=t,this.header[e]=t,this},n.prototype.unset=function(e){return delete this._header[e.toLowerCase()],delete this.header[e],this},n.prototype.field=function(e,t){if(null===e||void 0===e)throw new Error(".field(name, val) name can not be empty");if(this._data&&console.error(".field() can't be used if .send() is used. Please use only .send() or only .field() & .attach()"),s(e)){for(var r in e)this.field(r,e[r]);return this}if(Array.isArray(t)){for(var n in t)this.field(e,t[n]);return this}if(null===t||void 0===t)throw new Error(".field(name, val) val can not be empty");return"boolean"==typeof t&&(t=""+t),this._getFormData().append(e,t),this},n.prototype.abort=function(){return this._aborted?this:(this._aborted=!0,this.xhr&&this.xhr.abort(),this.req&&this.req.abort(),this.clearTimeout(),this.emit("abort"),this)},n.prototype.withCredentials=function(e){return void 0==e&&(e=!0),this._withCredentials=e,this},n.prototype.redirects=function(e){return this._maxRedirects=e,this},n.prototype.toJSON=function(){return{method:this.method,url:this.url,data:this._data,headers:this._header}},n.prototype.send=function(e){var t=s(e),r=this._header["content-type"];if(this._formData&&console.error(".send() can't be used if .attach() or .field() is used. Please use only .send() or only .field() & .attach()"),t&&!this._data)Array.isArray(e)?this._data=[]:this._isHost(e)||(this._data={});else if(e&&this._data&&this._isHost(this._data))throw Error("Can't merge these send calls");if(t&&s(this._data))for(var n in e)this._data[n]=e[n];else"string"==typeof e?(r||this.type("form"),r=this._header["content-type"],"application/x-www-form-urlencoded"==r?this._data=this._data?this._data+"&"+e:e:this._data=(this._data||"")+e):this._data=e;return!t||this._isHost(e)?this:(r||this.type("json"),this)},n.prototype.sortQuery=function(e){return this._sort="undefined"==typeof e||e,this},n.prototype._finalizeQueryString=function(){var e=this._query.join("&");if(e&&(this.url+=(this.url.indexOf("?")>=0?"&":"?")+e),this._query.length=0,this._sort){var t=this.url.indexOf("?");if(t>=0){var r=this.url.substring(t+1).split("&");"function"==typeof this._sort?r.sort(this._sort):r.sort(),this.url=this.url.substring(0,t)+"?"+r.join("&")}}},n.prototype._appendQueryString=function(){console.trace("Unsupported")},n.prototype._timeoutError=function(e,t,r){if(!this._aborted){var n=new Error(e+t+"ms exceeded");n.timeout=t,n.code="ECONNABORTED",n.errno=r,this.timedout=!0,this.abort(),this.callback(n)}},n.prototype._setTimeouts=function(){var e=this;this._timeout&&!this._timer&&(this._timer=setTimeout(function(){e._timeoutError("Timeout of ",e._timeout,"ETIME")},this._timeout)),this._responseTimeout&&!this._responseTimeoutTimer&&(this._responseTimeoutTimer=setTimeout(function(){e._timeoutError("Response timeout of ",e._responseTimeout,"ETIMEDOUT")},this._responseTimeout))}},function(e,t,r){function n(e){if(e)return i(e)}function i(e){for(var t in n.prototype)e[t]=n.prototype[t];return e}var s=r(12);e.exports=n,n.prototype.get=function(e){return this.header[e.toLowerCase()]},n.prototype._setHeaderProperties=function(e){var t=e["content-type"]||"";this.type=s.type(t);var r=s.params(t);for(var n in r)this[n]=r[n];this.links={};try{e.link&&(this.links=s.parseLinks(e.link))}catch(e){}},n.prototype._setStatusProperties=function(e){var t=e/100|0;this.status=this.statusCode=e,this.statusType=t,this.info=1==t,this.ok=2==t,this.redirect=3==t,this.clientError=4==t,this.serverError=5==t,this.error=(4==t||5==t)&&this.toError(),this.accepted=202==e,this.noContent=204==e,this.badRequest=400==e,this.unauthorized=401==e,this.notAcceptable=406==e,this.forbidden=403==e,this.notFound=404==e}},function(e,t){var r=["ECONNRESET","ETIMEDOUT","EADDRINFO","ESOCKETTIMEDOUT"];e.exports=function(e,t){return!!(e&&e.code&&~r.indexOf(e.code))||(!!(t&&t.status&&t.status>=500)||(!!(e&&"timeout"in e&&"ECONNABORTED"==e.code)||!!(e&&"crossDomain"in e)))}},function(e,t){t.type=function(e){return e.split(/ *; */).shift()},t.params=function(e){return e.split(/ *; */).reduce(function(e,t){var r=t.split(/ *= */),n=r.shift(),i=r.shift();return n&&i&&(e[n]=i),e},{})},t.parseLinks=function(e){return e.split(/ *, */).reduce(function(e,t){var r=t.split(/ *; */),n=r[0].slice(1,-1),i=r[1].split(/ *= */)[1].slice(1,-1);return e[i]=n,e},{})},t.cleanHeader=function(e,t){return delete e["content-type"],delete e["content-length"],delete e["transfer-encoding"],delete e.host,t&&delete e.cookie,e}},function(e,t,r){var n,i,s,o=r(2),u=r(1).Promise,a=r(3),c=r(5);o.parse["application/octect-stream"]=function(e){return e},n=function(e,t){return{status:e.status,error:(t?t.text:null)||e.toString(),response:t}},s=function(e,t){e.text="",e.setEncoding("binary"),e.on("data",function(t){e.text+=t}),e.on("end",function(){t()})},i=function(e,t,r,i,p,h){if("user"!==r)throw new Error("Unexpected auth type: "+r);var l=function(r,u){function l(e){r&&r(e)}function f(e){u&&u(e)}function d(e,t){var r;e?f(n(e,t)):(r=JSON.parse(t.headers["dropbox-api-result"]),t.xhr?r.fileBlob=t.xhr.response:r.fileBinary=t.res.text,l(r))}var _;_=o.post(a(i)+e).set("Authorization","Bearer "+p).set("Dropbox-API-Arg",c(t)).on("request",function(){this.xhr&&(this.xhr.responseType="blob")}),h&&(_=_.set("Dropbox-API-Select-User",h)),"undefined"==typeof window?_.buffer(!0).parse(s).end(d):_.end(d)};return new u(l)},e.exports=i},function(e,t,r){var n,i=r(6),s=r(17);n=function(e){i.call(this,e)},n.prototype=Object.create(i.prototype),n.prototype.constructor=n,n.prototype=Object.assign(n.prototype,s),n.prototype.filesGetSharedLinkFile=function(e){return this.request("sharing/get_shared_link_file",e,"api","download")},e.exports=n},function(e,t){"function"!=typeof Object.assign&&!function(){Object.assign=function(e){"use strict";var t,r,n,i;if(void 0===e||null===e)throw new TypeError("Cannot convert undefined or null to object");for(t=Object(e),r=1;r dependency.classList.remove(`esgst-hidden`)); + this.exclusions.forEach(exclusion => exclusion.classList.add(`esgst-hidden`)); } else { if (this.onDisabled) { this.onDisabled(); } this.dependencies.forEach(dependency => dependency.classList.add(`esgst-hidden`)); + this.exclusions.forEach(exclusion => exclusion.classList.remove(`esgst-hidden`)); } } enable() { @@ -472,7 +475,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun esgst = { sg: location.hostname.match(/www.steamgifts.com/), st: location.hostname.match(/www.steamtrades.com/), - currentVersion: `6.Beta.38.0`, + currentVersion: `6.Beta.38.1`, icon: `data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqv8DCbP/Hgeq+CQIrf8iCK3/Igit/yIIrf8iB6//Iwit9x8Aqv8DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKr0GAa2/c0DvfzfA7f83QO3/N0Dt/zdA7f83QO+/d4Gs/3OAKP1GQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACm/xQFs/n2Bcf//wW///8FwP//BcD//wW///8Fx///BbP69gC2/xUAAAAAAAAAAAAAAAAA/1UDFptOFxSZMxkLpJktAq720QW1+ugEsfvjA7b92wO2/dsEsfvjBbX66Aau/dEoiO4tUlLWGU5k3hdVVf8DEJxKHxWqT8cVrU7uE6VN0guqny0Apv8XAJfQGwBAVywAQFcsAJfQGwCx/xcogugtS2Lk0lBl6u5Qae7ISmPeHxagSSMVr07jF7lV/xOiSu0brgATAAAAAAAAAA8AAAC/AAAAwAAAABAAAAAAYznjEkth4OxWb/3/T2jv40lf4iMXnksiEq1O3RayUv8UpEnkEo0+HQAAABkAAABBAAAA8QAAAPEAAABBAAAAGUBSvxxOYeDjU2v0/05m7d1LYuEiF55LIhKtTt0Ws1L/FahN2gU1FTAAAADAAAAA7AAAAP0AAAD9AAAA7AAAAMAVG0owUGPm2lNr9P9OZu3dS2LhIheeSyISrU7dFrNS/xWoTdoFNRswAAAAvwAAAOsAAAD9AAAA/QAAAOsAAADAFRtKMFBj6NpTa/T/Tmbt3Uti4SIXnksiEq1O3RayUv8UpEnkEo0+HQAAABgAAABAAAAA8QAAAPEAAABBAAAAGT5PuR1OYeDjU2v0/05m7d1LYuEiFqBJIxWuT+QXuVX/E6JL7QC8XhMAAAAAAAAADwAAAL8AAAC/AAAAEAAAAAAOR/8SSWLh7FZv/f9PaO/jSV/iIxCUSh8Vrk7HFqxN7ROlS9JskzMt1XULGK12EhxGLgYsRy8GK612EhzVgAsYgmxxLU1i39JNZ+vtT2fwx0pj1h8AqlUDF65GFgqZUhlsiC0txH0T0s5/EujJgBPkz4QR28+EEdvJgBPkzn8Q6Md+E9KLdHosM1LWGUZo6BZVVf8DAAAAAAAAAAAAAAAA/2YAFMl9EvbgjRb/14gV/9eIFf/XiBX/14gV/9+NFv/KgBD254YAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL91FRjKgRHN1IgU3s+EEt3PhBLdz4QS3c+EEt3UiBTezYMRzcJ6FBkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACqqgADxIARHr18FiO8eA8ivHgPIrx4DyK8eA8ivXwPI8SAER7/VQADAAAAAAAAAAAAAAAA78cAAPA3AAD4FwAABCAAADGOAAAE+AAAkBEAAJ55AACYOQAAlgEAAER4AAAXaAAATnoAAPgXAAD0JwAA69cAAA==`, sgIcon: `data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIUAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAACFAAAAAAAAAAAAAAD8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAA/wAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAAAAAAAAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAAAAAAAAAAAAD/AAAA/wAAAP8AAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAP8AAAD/AAAA/wAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAPwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAAAAAAAAAAAACFAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAAhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP//AADAAwAAwAMAAMfjAADP8wAAz/MAAM/zAADP8wAAz/MAAM/zAADH4wAAwAMAAMADAAD//wAA//8AAA==`, stIcon: `data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAQAQAABMLAAATCwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbD6SgWw+ucFsPrkBbD6SgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWw+uYFsPr/BbD6/wWw+ucAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFsPrmBbD6/wWw+v8FsPrmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABbD6SQWw+uYFsPrmBbD6SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFKRLShSkS+cUpEvkFKRLSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExi4EpMYuDnTGLg5Exi4EoAAAAAAAAAABSkS+YUpEv/FKRL/xSkS+cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABMYuDmTGLg/0xi4P9MYuDnAAAAAAAAAAAUpEvmFKRL/xSkS/8UpEvmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATGLg5kxi4P9MYuD/TGLg5gAAAAAAAAAAFKRLSRSkS+YUpEvmFKRLSQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExi4ElMYuDmTGLg5kxi4EkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMZ9E0rGfRPnxn0T5MZ9E0oAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGfRPmxn0T/8Z9E//GfRPnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxn0T5sZ9E//GfRP/xn0T5gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMZ9E0nGfRPmxn0T5sZ9E0kAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAPw/AAD8PwAA/D8AAPw/AAD//wAAh+EAAIfhAACH4QAAh+EAAP//AAD8PwAA/D8AAPw/AAD8PwAA//8AAA==`, @@ -486,6 +489,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun popupGiveaways: [], currentDiscussions: [], profileFeatures: [], + elgbCache: JSON.parse(getValue(`esgst_elgbCache`, `{"descriptions": {}, "timestamp": ${Date.now()}}`)), menuPath: location.pathname.match(/^\/esgst\//), settingsPath: location.pathname.match(/^\/esgst\/settings/), importMenuPath: location.pathname.match(/^\/esgst\/import/), @@ -1027,6 +1031,12 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun st: true, type: `other` }, + { + id: `autoSync`, + name: `[NEW] Automatically sync games/groups when syncing through SG.`, + sg: true, + type: `other` + }, { description: `
    @@ -2183,6 +2193,16 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun
`, features: [ + { + description: ` +
    +
  • Currently filters "good luck", "have fun" and "enjoy" variations. The filter might not be perfect. If you see any description format that you think is useless, feel free to report it in the ESGST discussion and I'll add it to the filter.
  • +
+ `, + id: `elgb_f`, + name: `[NEW] Filter out useless descriptions.`, + sg: true + }, { description: `
    @@ -4154,7 +4174,10 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } setValue(`settings`, JSON.stringify(esgst.settings)); addStyle(); - var sibling, height; + var sibling, height; + if (esgst.profilePath && esgst.autoSync) { + document.getElementsByClassName(`form__sync-default`)[0].addEventListener(`click`, setSync.bind(null, true, null)); + } if (esgst.menuPath) { esgst.favicon.href = esgst.icon; if (esgst.settingsPath) { @@ -5739,7 +5762,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun setSetting(`avatar`, document.getElementsByClassName(`nav_avatar`)[0].style.backgroundImage.match(/\("(.+)"\)/)[1]); } } - setSync(callback); + setSync(false, callback); } else if (esgst.syncFrequency && Date.now() - esgst.lastSync > esgst.syncFrequency * 86400000) { if (esgst.sg) { setSetting(`username`, document.getElementsByClassName(`nav__avatar-outer-wrap`)[0].href.match(/\/user\/(.+)/)[1]); @@ -5751,28 +5774,35 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } } - function setSync(mainCallback) { + function setSync(autoSync, mainCallback) { var popup, syncer; syncer = { + autoSync: autoSync, canceled: false }; - if (mainCallback) { + if (syncer.autoSync || mainCallback) { popup = new Popup(`fa-refresh`, `Sync`); - new ToggleSwitch(popup.description, `syncGroups`, false, `Steam Groups`, false, false, null, esgst.syncGroups); - new ToggleSwitch(popup.description, `syncWhitelist`, false, `Whitelist`, false, false, null, esgst.syncWhitelist); - new ToggleSwitch(popup.description, `syncBlacklist`, false, `Blacklist`, false, false, null, esgst.syncBlacklist); - new ToggleSwitch(popup.description, `syncHiddenGames`, false, `Hidden Games`, false, false, null, esgst.syncHiddenGames); - new ToggleSwitch(popup.description, `syncGames`, false, `Owned/Wishlisted/Ignored Games`, false, false, null, esgst.syncGames); - new ToggleSwitch(popup.description, `syncReducedCvGames`, false, `Reduced CV Games`, false, false, null, esgst.syncReducedCvGames); - new ToggleSwitch(popup.description, `syncNoCvGames`, false, `No CV Games`, false, false, null, esgst.syncNoCvGames); - new ToggleSwitch(popup.description, `syncGiveaways`, false, `Giveaways`, false, false, null, esgst.syncGiveaways); + if (!syncer.autoSync) { + new ToggleSwitch(popup.description, `syncGroups`, false, `Steam Groups`, false, false, null, esgst.syncGroups); + new ToggleSwitch(popup.description, `syncWhitelist`, false, `Whitelist`, false, false, null, esgst.syncWhitelist); + new ToggleSwitch(popup.description, `syncBlacklist`, false, `Blacklist`, false, false, null, esgst.syncBlacklist); + new ToggleSwitch(popup.description, `syncHiddenGames`, false, `Hidden Games`, false, false, null, esgst.syncHiddenGames); + new ToggleSwitch(popup.description, `syncGames`, false, `Owned/Wishlisted/Ignored Games`, false, false, null, esgst.syncGames); + new ToggleSwitch(popup.description, `syncReducedCvGames`, false, `Reduced CV Games`, false, false, null, esgst.syncReducedCvGames); + new ToggleSwitch(popup.description, `syncNoCvGames`, false, `No CV Games`, false, false, null, esgst.syncNoCvGames); + new ToggleSwitch(popup.description, `syncGiveaways`, false, `Giveaways`, false, false, null, esgst.syncGiveaways); + } syncer.progress = insertHtml(popup.description, `beforeEnd`, `
    `); syncer.scrollable = popup.scrollable; - popup.description.appendChild(new ButtonSet(`green`, `grey`, `fa-refresh`, `fa-times`, `Sync`, `Cancel`, sync.bind(null, syncer, mainCallback), cancelSync.bind(null, syncer, mainCallback)).set); + set = new ButtonSet(`green`, `grey`, `fa-refresh`, `fa-times`, `Sync`, `Cancel`, sync.bind(null, syncer, mainCallback), cancelSync.bind(null, syncer, mainCallback)); + popup.description.appendChild(set.set); popup.onClose = mainCallback; popup.open(); + if (syncer.autoSync) { + set.trigger(); + } } else { document.body.innerHTML = ``; var description = insertHtml(document.body, `beforeEnd`, ` @@ -5799,7 +5829,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun `; - if (!esgst.steamId && esgst.username) { + if (!syncer.autoSync && !esgst.steamId && esgst.username) { syncer.progress.lastElementChild.textContent = `Syncing your Steam id...`; request(null, null, false, `https://www.steamgifts.com/user/${esgst.username}`, getSteamIdAndContinueSync.bind(null, syncer, completeSync.bind(null, syncer, mainCallback, callback))); } else { @@ -5827,7 +5857,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun function continueSyncStep1(syncer, callback) { var i, key, n, newGroups, savedGiveaways, savedGroups; - if (esgst.sg && esgst.settings.syncGroups) { + if (esgst.sg && (esgst.settings.syncGroups || syncer.autoSync)) { syncer.progress.lastElementChild.textContent = `Syncing your Steam groups...`; syncer.groups = {}; savedGroups = JSON.parse(getValue(`groups`)); @@ -5949,7 +5979,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } function continueSyncStep2(syncer, callback) { - if (esgst.settings.syncWhitelist || esgst.settings.syncBlacklist) { + if (!syncer.autoSync && (esgst.settings.syncWhitelist || esgst.settings.syncBlacklist)) { syncWhitelistBlacklist(syncer, continueSyncStep3.bind(null, syncer, callback)); } else { continueSyncStep3(syncer, callback); @@ -6026,7 +6056,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } function continueSyncStep3(syncer, callback) { - if (esgst.settings.syncHiddenGames) { + if (!syncer.autoSync && esgst.settings.syncHiddenGames) { syncer.progress.lastElementChild.textContent = `Syncing your hidden games...`; syncer.hiddenGames = { apps: [], @@ -6087,7 +6117,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } function continueSyncStep4(syncer, callback) { - if (esgst.settings.syncGames) { + if (syncer.autoSync || esgst.settings.syncGames) { syncer.progress.lastElementChild.textContent = `Syncing your wishlisted/owned/ignored games...`; syncGames(syncer, syncAltAccounts.bind(null, 0, esgst.settings.gc_o_altAccounts.length, syncer, continueSyncStep5.bind(null, syncer, callback))); } else { @@ -6317,7 +6347,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun if (html) { syncer.scrollable.insertAdjacentHTML(`beforeEnd`, html); } - if (esgst.settings.syncReducedCvGames) { + if (!syncer.autoSync && esgst.settings.syncReducedCvGames) { syncer.progress.lastElementChild.textContent = `Syncing reduced CV games...`; request(null, null, false, `https://script.google.com/macros/s/AKfycbwJK-7RBh5ghaKprEsmx4DQ6CyXc_3_9eYiOCu3yhI6W4B3W4YN/exec`, syncCvGames.bind(null, syncer, continueSyncStep6.bind(null, syncer, callback))); } else { @@ -6326,7 +6356,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } function continueSyncStep6(syncer, callback) { - if (esgst.settings.syncNoCvGames) { + if (!syncer.autoSync && esgst.settings.syncNoCvGames) { syncer.progress.lastElementChild.textContent = `Syncing no CV games...`; request(null, null, false, `https://script.google.com/macros/s/AKfycbym0nzeyr3_b93ViuiZRivkBMl9PBI2dTHQxNC0rtgeQSlCTI-P/exec`, syncCvGames.bind(null, syncer, continueSyncStep7.bind(null, syncer, callback))); } else { @@ -6335,7 +6365,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } function continueSyncStep7(syncer, callback) { - if (esgst.settings.syncGiveaways && esgst.sg) { + if (!syncer.autoSync && esgst.settings.syncGiveaways && esgst.sg) { syncer.progress.lastElementChild.textContent = `Syncing your giveaways...`; var user = { steamId: esgst.steamId, @@ -6662,10 +6692,28 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } }); options.forEach(option => { - if (switches[option.id] && option.dependencies) { - option.dependencies.forEach(dependency => { - switches[option.id].dependencies.push(elements[dependency]); - }); + let enabled = esgst[option.id]; + if (switches[option.id]) { + if (option.dependencies) { + option.dependencies.forEach(dependency => { + if (elements[dependency]) { + switches[option.id].dependencies.push(elements[dependency]); + if (!enabled) { + elements[dependency].classList.add(`esgst-hidden`); + } + } + }); + } + if (option.exclusions) { + option.exclusions.forEach(exclusion => { + if (elements[exclusion]) { + switches[option.id].exclusions.push(elements[exclusion]); + if (enabled) { + elements[exclusion].classList.add(`esgst-hidden`); + } + } + }); + } } }); return context; @@ -9277,7 +9325,7 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun function openGfExceptionPopup(exceptionCount, gf, presetInput) { var deleted, details, i, max, min, name, popup, preset, presets, row, table, undoButton; - popup = new Popup(`fa-gear`, `Manage exceptions: `, true); + popup = new Popup(`fa-gear`, `Manage exceptions: `, true); deleted = []; undoButton = insertHtml(popup.description, `beforeEnd`, `
    @@ -9645,11 +9693,6 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } } } - if (gf.exceptions) { - for (i = gf.exceptions.length - 1; i >= 0 && filtered; --i) { - filtered = filterGfException(gf.exceptions[i], giveaway); - } - } for (i = 0, n = typeFilters.length; !filtered && i < n; ++i) { key = typeFilters[i]; if ((key === `regionRestricted` && !gf.advancedSearch) || key !== `regionRestricted`) { @@ -9678,6 +9721,11 @@ this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:fun } } } + if (gf.exceptions) { + for (i = gf.exceptions.length - 1; i >= 0 && filtered; --i) { + filtered = filterGfException(gf.exceptions[i], giveaway); + } + } return filtered; } @@ -10747,14 +10795,14 @@ ${avatar.outerHTML} giveaway.elgbButton = new ButtonSet(`yellow`, `grey`, `fa-minus-circle`, `fa-circle-o-notch fa-spin`, `Leave`, `Leaving...`, leaveElgbGiveaway.bind(null, giveaway, main, source)).set; giveaway.elgbButton.removeAttribute(`title`); } else if (giveaway.error) { - giveaway.elgbButton = new ButtonSet(`red`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, source)).set; + giveaway.elgbButton = new ButtonSet(`red`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, null, source)).set; giveaway.elgbButton.setAttribute(`title`, error); } else { if (giveaway.points <= esgst.points) { - giveaway.elgbButton = new ButtonSet(`green`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, source)).set; + giveaway.elgbButton = new ButtonSet(`green`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, null, source)).set; giveaway.elgbButton.removeAttribute(`title`); } else { - giveaway.elgbButton = new ButtonSet(`red`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, source)).set; + giveaway.elgbButton = new ButtonSet(`red`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter`, `Entering...`, enterElgbGiveaway.bind(null, giveaway, main, null, source)).set; giveaway.elgbButton.setAttribute(`title`, `Not Enough Points`); } } @@ -10782,7 +10830,7 @@ ${avatar.outerHTML} let games = JSON.parse(getValue(`games`)); if (giveaway.started && !giveaway.ended && !giveaway.created && giveaway.level <= esgst.level && ((giveaway.id && ((games[giveaway.type][giveaway.id] && !games[giveaway.type][giveaway.id].owned && (!games[giveaway.type][giveaway.id].hidden || !esgst.hgebd)) || !games[giveaway.type][giveaway.id])) || !giveaway.id)) { set = new ButtonSet(`green`, `grey`, `fa-plus-circle`, `fa-circle-o-notch fa-spin`, `Enter Giveaway`, `Entering...`, function (callback) { - enterElgbGiveaway(giveaway, main, source, function () { + enterElgbGiveaway(giveaway, main, true, source, function () { callback(); popup.close(); }); @@ -10791,6 +10839,32 @@ ${avatar.outerHTML} } } description = DOM.parse(response.responseText).getElementsByClassName(`page__description`)[0]; + if (description && !mainCallback) { + if (Date.now() - esgst.elgbCache.timestamp > 3600000) { + esgst.elgbCache = { + descriptions: {}, + timestamp: Date.now() + }; + setValue(`esgst_elgbCache`, JSON.stringify(esgst.elgbCache)); + } + if (!esgst.elgbCache.descriptions[giveaway.creator]) { + esgst.elgbCache.descriptions[giveaway.creator] = []; + } + let html = description.innerHTML, i; + for (i = esgst.elgbCache.descriptions[giveaway.creator].length - 1; i > -1 && esgst.elgbCache.descriptions[giveaway.creator][i] !== html; --i); + if (i > -1) { + description = null; + } else { + esgst.elgbCache.descriptions[giveaway.creator].push(html); + setValue(`esgst_elgbCache`, JSON.stringify(esgst.elgbCache)); + if (esgst.elgb_f) { + let text = description.textContent.replace(/[^a-zA-Z]/g, ``).toLowerCase(); + if (text.match(/^(.|bestofluck|enjoy|gl|glhf|goodluck|havefun|havefunxd)$/)) { + description = null; + } + } + } + } if (description) { description.classList.add(`esgst-text-left`); popup.scrollable.insertAdjacentHTML(`beforeEnd`, description.outerHTML); @@ -10846,7 +10920,7 @@ ${avatar.outerHTML} }); } - function enterElgbGiveaway(giveaway, main, source, callback) { + function enterElgbGiveaway(giveaway, main, popup, source, callback) { request(`xsrf_token=${esgst.xsrfToken}&do=entry_insert&code=${giveaway.code}`, null, false, `/ajax.php`, function(response) { var responseJson; responseJson = JSON.parse(response.responseText); @@ -10883,7 +10957,9 @@ ${avatar.outerHTML} filterGfGiveaways(esgst.gfPopup); } callback(); - openElgbPopup(giveaway, main, source); + if (!popup) { + openElgbPopup(giveaway, main, source); + } } else { giveaway.entered = false; giveaway.error = true; @@ -12274,11 +12350,20 @@ ${avatar.outerHTML} } function createMgcGiveaway(i, mgc, n, callback) { - var j; + var j, popup; if (i < n) { if (!mgc.giveaways.children[i].classList.contains(`success`)) { j = parseInt(mgc.giveaways.children[i].textContent) - 1; - request(mgc.datas[j].replace(/start_time=(.+?)&/, correctMgcTime), null, false, `/giveaways/new`, checkMgcCreation.bind(null, i, mgc, n, callback)); + if (j > 0 && mgc.datas[j].replace(/key_string=(.*?)&/, ``).replace(/copies=(.*?)&/, ``) === mgc.datas[j - 1].replace(/key_string=(.*?)&/, ``).replace(/copies=(.*?)&/, ``)) { + popup = new Popup(`fa-circle-o-notch fa-spin`, `Waiting 2 minutes to create another identical giveaway...`, true); + popup.open(); + setTimeout(() => { + popup.close(); + request(mgc.datas[j].replace(/start_time=(.+?)&/, correctMgcTime), null, false, `/giveaways/new`, checkMgcCreation.bind(null, i, mgc, n, callback)); + }, 120000); + } else { + request(mgc.datas[j].replace(/start_time=(.+?)&/, correctMgcTime), null, false, `/giveaways/new`, checkMgcCreation.bind(null, i, mgc, n, callback)); + } } else { setTimeout(createMgcGiveaway, 0, ++i, mgc, n, callback); } @@ -15859,7 +15944,7 @@ ${avatar.outerHTML} function openDfExceptionPopup(exceptionCount, df, presetInput) { var deleted, details, i, max, min, name, popup, preset, presets, row, table, undoButton; - popup = new Popup(`fa-gear`, `Manage exceptions: `, true); + popup = new Popup(`fa-gear`, `Manage exceptions: `, true); deleted = []; undoButton = insertHtml(popup.description, `beforeEnd`, `
    @@ -16122,17 +16207,17 @@ ${avatar.outerHTML} filtered = true; } } - if (df.exceptions) { - for (i = df.exceptions.length - 1; i >= 0 && filtered; --i) { - filtered = filterDfException(df.exceptions[i], discussion); - } - } for (i = 0, n = typeFilters.length; !filtered && i < n; ++i) { key = typeFilters[i]; if ((df[key] === `disabled` && discussion[key]) || (df[key] === `none` && !discussion[key])) { filtered = true; } } + if (df.exceptions) { + for (i = df.exceptions.length - 1; i >= 0 && filtered; --i) { + filtered = filterDfException(df.exceptions[i], discussion); + } + } return filtered; } @@ -26412,7 +26497,7 @@ ${avatar.outerHTML} Context.insertAdjacentHTML(`beforeEnd`, ` - " + `); UGDButton = Context.lastElementChild; popup = new Popup(`fa-bar-chart`, `Get ${user.username}'s ${UGD.Key} giveaways data:`); @@ -26971,14 +27056,14 @@ ${avatar.outerHTML} popup.Options = insertHtml(popup.description, `beforeEnd`, `
    `); popup.Options.appendChild(createOptions([{ check: true, - dependencies: [`namwc_checkMultiple`], description: `Only check for not activated wins.`, + exclusions: [`namwc_checkMultiple`], id: `namwc_checkNotActivated`, tooltip: `If enabled, multiple wins will not be checked (faster).` }, { check: true, - dependencies: [`namwc_checkNotActivated`], description: `Only check for multiple wins.`, + exclusions: [`namwc_checkNotActivated`], id: `namwc_checkMultiple`, tooltip: `If enabled, not activated wins will not be checked (faster).` }])); @@ -27687,8 +27772,8 @@ ${avatar.outerHTML} popup.Options = insertHtml(popup.description, `beforeEnd`, `
    `); popup.Options.appendChild(createOptions([{ check: WBC.User, - dependencies: [`wbc_checkAll`], description: `Only check ${WBC.User ? WBC.User.Username : `current user`}.`, + exclusions: [`wbc_checkAll`], id: `wbc_checkSingle`, tooltip: `If disabled, all users in the current page will be checked.` }, { @@ -27698,8 +27783,8 @@ ${avatar.outerHTML} tooltip: `If disabled, a blacklist-only check will be performed (faster).` }, { check: ((((WBC.User && !esgst.wbc_checkSingle) || !WBC.User) && !WBC.Update && !location.pathname.match(/^\/(discussions|users|archive)/)) ? true : false), - dependencies: [`wbc_checkSingle`], description: `Check all pages.`, + exclusions: [`wbc_checkSingle`], id: `wbc_checkAll`, tooltip: `If disabled, only the current page will be checked.` }, { @@ -36187,6 +36272,22 @@ ${avatar.outerHTML} function loadChangelog(version) { var changelog, current, html, i, index, n, popup; changelog = [ + { + date: `October 2, 2017`, + version: `6.Beta.38.1`, + changelog: ` +
      +
    • Added an option that automatically syncs your groups/games when syncing through SG (closes #10).
    • +
    • Fixed a bug that was not handling some option dependencies correctly (closes #32).
    • +
    • Giveaway Filters exceptions are now applied to all filters instead of just to basic filters.
    • +
    • Fixed a bug that was preventing Discussion Filters exceptions from working correctly (closes #31).
    • +
    • Enter/Leave Giveaway Button now recognizes identical descriptions from the same creator and shows the description only once so you don't have to keep reading the same description over and over again (the cache is stored for 1 hour).
    • +
    • Added an option (2.17.1) to Enter/Leave Giveaway Button that filters out useless descriptions.
    • +
    • Fixed a bug in Giveaway Popup that was popping the description once again after entering the giveaway.
    • +
    • Added a 2 minutes delay between the creation of identical giveaways to Multiple Giveaways Creator, as SG now blocks the creation of identical giveaways in less than 2 minutes apart from each other.
    • +
    + ` + }, { date: `October 2, 2017`, version: `6.Beta.38.0`, @@ -36207,7 +36308,7 @@ ${avatar.outerHTML} version: `6.Beta.37.3`, changelog: `
      -
    • Fixed a bug that was not remembering some data.
    • +
    • Fixed a bug that was not remembering some data (closes #29).
    • Fixed a bug that was preventing Multiple Giveaways Creator from creating giveaways.
    ` diff --git a/README.md b/README.md index d6b7bc49..a685466e 100644 --- a/README.md +++ b/README.md @@ -852,6 +852,19 @@ The video above does not get embedded. ## Changelog +**6.Beta.38.1 (October 2, 2017):** + +
      +
    • Added an option that automatically syncs your groups/games when syncing through SG (closes #10).
    • +
    • Fixed a bug that was not handling some option dependencies correctly (closes #32).
    • +
    • Giveaway Filters exceptions are now applied to all filters instead of just to basic filters.
    • +
    • Fixed a bug that was preventing Discussion Filters exceptions from working correctly (closes #31).
    • +
    • Enter/Leave Giveaway Button now recognizes identical descriptions from the same creator and shows the description only once so you don't have to keep reading the same description over and over again (the cache is stored for 1 hour).
    • +
    • Added an option (2.17.1) to Enter/Leave Giveaway Button that filters out useless descriptions.
    • +
    • Fixed a bug in Giveaway Popup that was popping the description once again after entering the giveaway.
    • +
    • Added a 2 minutes delay between the creation of identical giveaways to Multiple Giveaways Creator, as SG now blocks the creation of identical giveaways in less than 2 minutes apart from each other.
    • +
    + **6.Beta.38.0 (October 2, 2017):**