diff --git a/amaz.giveaway.user.js b/amaz.giveaway.user.js
index 3d3b308..8a1e5c0 100644
--- a/amaz.giveaway.user.js
+++ b/amaz.giveaway.user.js
@@ -4,66 +4,40 @@
// @description Allow removal of visited links on Amazon Giveaway Listing
// @include https://smile.amazon.com/ga/giveaways*
// @include https://www.amazon.com/ga/giveaways*
-// @version 1.9.2
+// @version 1.6
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
// ==/UserScript==
-/* global jQuery */
-/* jshint esversion: 6 */
+var checked = false;
-(function ($) {
- 'use strict';
+var getSmallUrl = function(fullUrl) {
+ return fullUrl.split('?')[0];
+};
- var checked = false;
- var regex_hide;
+var hideOne = function(el) {
+ $(el).parents('div.a-spacing-base').css('display', checked ? 'none' : 'block');
+};
- var getSmallUrl = function(fullUrl) {
- return fullUrl.split('?')[0];
- };
+var hideVisited = function(evt) {
+ checked = $(this).prop('checked');
+ var $links = $('.landingPageSpacings a[href*="amazon.com/ga"]');
- var hideOne = function(el) {
- $(el).parents('.listing-item').css('display', checked ? 'none' : 'block');
- };
-
- var hideVisited = function(evt) {
- checked = $(this).prop('checked');
- var $links = $('.listing-info-container a[href*="/ga"]');
-
- var hide = regex_hide ? new RegExp(regex_hide, 'i') : null;
-
- $links.each(function() {
- var href = getSmallUrl($(this).attr('href'));
- if (localStorage.getItem(href)) {
- hideOne(this);
- }
-
- var title = $(this).find('.prize-title').text();
- if (hide && title && hide.test(title)) {
- hideOne(this);
- }
- });
- };
-
- $(document).ready(function() {
- $('.listing-info-container').on('click', 'a[href*="/ga"]', function(evt) {
- var href = getSmallUrl($(this).attr('href'));
- localStorage[href] = "visited";
+ $links.each(function() {
+ var href = getSmallUrl($(this).attr('href'));
+ if (localStorage.getItem(href)) {
hideOne(this);
- });
+ }
+ });
+};
- $('.listing-info-container a[href*="/ga"]').attr('target', '_blank');
+$(document).ready(function() {
+ $('.landingPageSpacings').on('click', 'a[href*="amazon.com/ga"]', function(evt) {
- regex_hide = localStorage.getItem('regex_hide') || '';
-
- $('#giveaway-numbers-container')
- .append('')
- .append(``);
-
- $('#hide_visited').on('click', hideVisited);
- $('#hide_regex').on('change', function() {
- regex_hide = $(this).val();
- localStorage.regex_hide = regex_hide;
- });
+ var href = getSmallUrl($(this).attr('href'));
+ localStorage[href] = "visited";
+ hideOne(this);
});
-})(jQuery);
+ $('h1:contains("Giveaways")').after('');
+ $('#hide_visited').on('click', hideVisited);
+});
diff --git a/comicextra.user.js b/comicextra.user.js
deleted file mode 100644
index fe17dd5..0000000
--- a/comicextra.user.js
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Comic Extra Scraper
-// @namespace danielrayjones
-// @version 0.0.6
-// @description Scrape comics from comicextra.com
-// @author Dan Jones
-// @match https://www.comicextra.com/*
-// @grant none
-// @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// @require https://bowercdn.net/c/jszip-3.1.5/dist/jszip.min.js
-// ==/UserScript==
-
-/* global jQuery, JSZip */
-/* jshint esversion: 6 */
-
-console.log('will scrape comics');
-
-(function($) {
- 'use strict';
-
- $(window).konami({
- code: [71,69,84],
- cheat: getStuff
- });
-
- function getStuff() {
- let i = 0;
-
- let path = location.pathname.split('/');
- let end = path.pop();
- while (!end && path.length) {
- end = path.pop();
- }
-
- if (end !== 'full') {
- alert('Must have the full comic');
- return;
- }
-
- let chapter = path.pop();
- let match;
- if ((match = chapter.match(/^chapter-([0-9]+)/))) {
- chapter = match[1];
- }
-
- let name = path.pop();
-
- console.log(`Getting ${name} ${chapter}`);
-
- let imgs = $('.chapter-main .chapter_img').toArray();
- console.log(imgs);
-
- let cbz = new JSZip();
-
- function downloadCbz() {
- cbz.generateAsync({type: 'blob'})
- .then(blob => {
- let title = name.replace(/-/g, ' ') + ' ' + chapter;
-
- let $el = $('');
- $(document.body).append($el);
- $el.attr('href', URL.createObjectURL(blob));
- $el.attr('download', `${title} (comicextra) (Danjones).cbz`);
- $el.get(0).click();
- });
- }
-
- function getOne() {
- if (!imgs || !imgs.length) {
- downloadCbz();
- return;
- }
-
- let img = imgs.shift();
- console.log(img.src);
-
- fetch(`//cors-anywhere.herokuapp.com/${img.src}`).then(resp => resp.blob()).then(blob => {
- cbz.file(name + '-' + (i < 10 ? '00' : '0' ) + i + '.jpg', blob);
-
- i = i+1;
- setTimeout(getOne, 0);
- });
- }
-
- getOne();
- }
-})(jQuery);
diff --git a/cookie.clicker.user.js b/cookie.clicker.user.js
deleted file mode 100644
index 27dbfe5..0000000
--- a/cookie.clicker.user.js
+++ /dev/null
@@ -1,45 +0,0 @@
-// ==UserScript==
-// @name Auto Cookie Clicker
-// @namespace danielrayjones
-// @description Plays Cookie Clicker for you
-// @include http://orteil.dashnet.org/cookieclicker/
-// @version 0.0.4
-// ==/UserScript==
-
-/* jshint esversion: 6 */
-
-let AutoClicker = {stop: false};
-unsafeWindow.AutoClicker = AutoClicker;
-
-window.addEventListener('load', function () {
- 'use strict';
-
- let cookie = document.getElementById('bigCookie');
- let shimmers = document.getElementById('shimmers');
-
- function clickCookie() {
- AutoClicker.cookie.click();
- if (!AutoClicker.stop) {
- setTimeout(clickCookie, 5);
- }
- }
-
- let shimmerObserver = new MutationObserver(function (mutations) {
- mutations.forEach(function (mutation) {
- mutation.addedNodes.forEach(function (shimmer) {
- console.log('clicking', shimmer);
- shimmer.click();
- });
- });
- });
- shimmerObserver.observe(shimmers, { childList: true});
-
- AutoClicker.cookie = cookie;
- AutoClicker.shimmers = shimmers;
- AutoClicker.clickCookie = clickCookie;
- AutoClicker.shimmerObserver = shimmerObserver;
-
- for (let i = 0; i < 20; i++) {
- clickCookie();
- }
-});
diff --git a/fullcomic.user.js b/fullcomic.user.js
deleted file mode 100644
index aa8cd87..0000000
--- a/fullcomic.user.js
+++ /dev/null
@@ -1,85 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Full Comic Scraper
-// @namespace danielrayjones
-// @version 0.0.5
-// @description Scrape comics from fullcomic.pro
-// @author Dan Jones
-// @match http://fullcomic.pro/*
-// @grant none
-// @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// @require https://bowercdn.net/c/jszip-3.1.5/dist/jszip.min.js
-// ==/UserScript==
-
-/* global jQuery, JSZip */
-/* jshint esversion: 6 */
-
-console.log('will scrape comics');
-
-(function($) {
- 'use strict';
-
- $(window).konami({
- code: [71,69,84],
- cheat: getStuff
- });
-
- function getStuff() {
- let i = 0;
-
- let title = $('.title h1').text();
-
- let regex = /Issue #([0-9]+)/;
- let match;
- if ((match = title.match(regex))) {
- let issue = match[1];
- while (issue.length < 3) {
- issue = '0' + issue;
- }
-
- title = title.replace(regex, issue);
- }
-
- console.log(`Getting ${title}`);
-
- let imgs = $('#imgPages img').toArray();
- console.log(imgs);
-
- let cbz = new JSZip();
-
- function downloadCbz() {
- cbz.generateAsync({type: 'blob'})
- .then(blob => {
- let fileTitle = title.replace(/: /g, ' - ');
-
- let $el = $('');
- $(document.body).append($el);
- $el.attr('href', URL.createObjectURL(blob));
- $el.attr('download', `${fileTitle} (fullcomic) (Danjones).cbz`);
- $el.get(0).click();
- });
- }
-
- function getOne() {
- if (!imgs || !imgs.length) {
- downloadCbz();
- return;
- }
-
- let img = imgs.shift();
- console.log(img.src);
-
- fetch(`//cors-anywhere.herokuapp.com/${img.src}`).then(resp => resp.blob()).then(blob => {
- let name = title.replace(/[^A-Za-z0-9]+/g, '-');
-
- cbz.file(name + '-' + (i < 10 ? '00' : '0' ) + i + '.jpg', blob);
-
- i = i+1;
- setTimeout(getOne, 0);
- });
- }
-
- getOne();
- }
-})(jQuery);
diff --git a/giveaway.hide.crap.user.js b/giveaway.hide.crap.user.js
index 6d8646c..85ca0a6 100644
--- a/giveaway.hide.crap.user.js
+++ b/giveaway.hide.crap.user.js
@@ -3,12 +3,11 @@
// @namespace danielrayjones
// @description Remove stuff I don't like from Amazon Giveaway Listing
// @include https://giveawaylisting.com/
-// @version 1.0.1
+// @version 1.0
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
// ==/UserScript==
/* global $ */
-/* jshint esversion: 6 */
var hide = function(text) {
$('#giveaways a:contains("' + text +'")')
diff --git a/giveaway.user.js b/giveaway.user.js
index 406e7f2..a07fba6 100644
--- a/giveaway.user.js
+++ b/giveaway.user.js
@@ -3,12 +3,10 @@
// @namespace danielrayjones
// @description Allow removal of visited links on Amazon Giveaway Listing
// @include https://giveawaylisting.com/
-// @version 1.3.1
+// @version 1.3
// @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
// ==/UserScript==
-/* jshint esversion: 6 */
-
var checked = false;
var hideOne = function(el) {
diff --git a/infinite-craft-plus.user.js b/infinite-craft-plus.user.js
deleted file mode 100644
index ec95fde..0000000
--- a/infinite-craft-plus.user.js
+++ /dev/null
@@ -1,143 +0,0 @@
-// ==UserScript==
-// @name Infinite Craft Plus
-// @namespace danielrayjones
-// @match https://neal.fun/infinite-craft/
-// @grant none
-// @version 0.0.1
-// @author Dan Jones
-// @description 2024-01-06T14:13:00-0500
-// ==/UserScript==
-
-/* global window, localStorage, FileReader */
-
-(function () {
- const key = "infinite-craft-data";
-
- function getData() {
- return localStorage.getItem(key);
- }
-
- function downloadData() {
- const data = getData();
-
- const dl = document.createElement('a');
- dl.href = 'data:application/json,' + data;
- dl.download = 'infinite-craft.json';
-
- dl.click();
- }
-
- function getParsedData() {
- return JSON.parse(getData());
- }
-
- function getElements() {
- return getParsedData().elements;
- }
-
- function overwriteElements(newElements) {
- const data = getParsedData();
- const old = data.elements;
- data.elements = newElements;
-
- localStorage.setItem(key, JSON.stringify(data));
-
- return old;
- }
-
- function addElements(newElements) {
- const els = getElements();
-
- for (let i = 0; i < newElements.length; i++) {
- const newEl = newElements[i];
- const found = els.find(el => el.text === newEl.text);
- if (found) {
- continue;
- }
-
- console.log('Adding', newEl);
-
- els.push(newEl);
- }
-
- return overwriteElements(els);
- }
-
- function uploadElements(evt) {
- evt.preventDefault();
- const files = evt.target.uploads.files;
-
- for (let i = 0; i < files.length; i++) {
- const file = files[i];
- const read = new FileReader();
- read.addEventListener('load', function () {
- const body = read.result;
- const els = JSON.parse(body)?.elements;
- addElements(els);
- });
- read.readAsText(file);
- }
-
- const sub = evt.target.lastChild;
- sub.disabled = true;
- sub.setAttribute('value', '✅');
- }
-
- function getUploadButton() {
- const f = document.createElement('form');
- f.style.display = 'inline';
-
- const ups = document.createElement('input');
- ups.setAttribute('type', 'file');
- ups.setAttribute('name', 'uploads');
- ups.setAttribute('accept', '.json');
- ups.setAttribute('required', true);
- f.appendChild(ups);
-
- f.addEventListener('submit', uploadElements);
-
- const sub = document.createElement('input');
- sub.setAttribute('type', 'submit');
- sub.setAttribute('value', 'Upload');
- f.appendChild(sub);
-
- return f;
- }
-
- function getDownloadButton() {
- const butt = document.createElement('button');
- butt.innerText = '⤵️';
- butt.addEventListener('click', downloadData);
-
- return butt;
- }
-
- function addButtons() {
- const target = document.querySelector('.site-title')?.parentElement;
- if (!target) {
- console.log("Can't find .site-title");
- return null;
- }
-
- const span = document.createElement('span');
- const down = getDownloadButton();
- const up = getUploadButton();
- span.appendChild(down);
- span.appendChild(up);
-
- const next = target.nextElementSibling;
- console.log('inserting', span, 'before', next);
- target.style.display = 'none';
-
- return target.parentElement.insertBefore(span, next);
- }
-
- window.Game = window.Game || {};
-
- window.Game.getData = getElements;
- window.Game.download = downloadData;
-
- window.addEventListener('load', () => console.log(addButtons()));
-
-})();
-
diff --git a/old-reddit-expando.user.js b/old-reddit-expando.user.js
deleted file mode 100644
index 1eea2a4..0000000
--- a/old-reddit-expando.user.js
+++ /dev/null
@@ -1,46 +0,0 @@
-// ==UserScript==
-// @name Old Reddit Image Expander
-// @namespace danielrayjones
-// @description Allow removal of visited links on Amazon Giveaway Listing
-// @include https://old.reddit.com*
-// @version 1.0.3
-// ==/UserScript==
-
-(function() {
- const listing = document.getElementById('siteTable');
-
- if (!listing) {
- return;
- }
-
- let para = document.createElement('p');
- let exButton = document.createElement('button');
- exButton.innerText = 'Expand';
- exButton = para.appendChild(exButton);
- exButton.addEventListener('click', () => document.querySelectorAll('.expando-button.collapsed').forEach(e => e.click()));
-
- let deButton = document.createElement('button');
- deButton.innerText = 'Collapse';
- deButton = para.appendChild(deButton);
- deButton.addEventListener('click', () => document.querySelectorAll('.expando-button.expanded').forEach(e => e.click()));
-
- para = listing.insertBefore(para, listing.firstChild);
-
- const proxyThumbClicks = function(evt) {
- let thing = evt.target;
- while (!thing.classList.contains('thing') && thing != document.body) {
- thing = thing.parentElement;
- }
- if (!thing.classList.contains('thing')) {
- console.log("Couldn't find thing");
- return true;
- }
- evt.preventDefault();
-
- thing.querySelector('.expando-button')?.click();
-
- return false;
- };
-
- listing.querySelectorAll('.thumbnail').forEach(e => e.addEventListener('click', proxyThumbClicks));
-})();
diff --git a/readcomiconline.user.js b/readcomiconline.user.js
deleted file mode 100644
index 14dbfdb..0000000
--- a/readcomiconline.user.js
+++ /dev/null
@@ -1,89 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Read Comic Online Scraper
-// @namespace danielrayjones
-// @version 0.0.4
-// @description Scrape comics from readcomiconline.to
-// @author Dan Jones
-// @match https://readcomiconline.to/*
-// @grant none
-// @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// @require https://bowercdn.net/c/jszip-3.1.5/dist/jszip.min.js
-// ==/UserScript==
-
-/* global jQuery, JSZip */
-/* jshint esversion: 6 */
-
-(function($) {
- 'use strict';
-
- console.log('This does not work');
- return;
-
- $(window).konami({
- code: [71,69,84],
- cheat: getStuff
- });
-
- function getStuff() {
- let i = 0;
-
- let path = location.pathname.split('/');
- let chapter = path.pop();
- while (!chapter && path.length) {
- chapter = path.pop();
- }
-
- let match;
- if ((match = chapter.match(/^Issue-([0-9]+)/))) {
- chapter = match[1];
- }
-
- let name = path.pop();
-
- if (path.pop() !== 'Comic') {
- alert('Not on a comic page');
- return;
- }
-
- console.log(`Getting ${name} ${chapter}`);
-
- let imgs = $('#divImage img').toArray();
- console.log(imgs);
-
- let cbz = new JSZip();
-
- function downloadCbz() {
- cbz.generateAsync({type: 'blob'})
- .then(blob => {
- let title = name.replace(/-/g, ' ') + ' ' + chapter;
-
- let $el = $('');
- $(document.body).append($el);
- $el.attr('href', URL.createObjectURL(blob));
- $el.attr('download', `${title} (readcomiconline) (Danjones).cbz`);
- $el.get(0).click();
- });
- }
-
- function getOne() {
- if (!imgs || !imgs.length) {
- downloadCbz();
- return;
- }
-
- let img = imgs.shift();
- console.log(img.src);
-
- fetch(`//cors-anywhere.herokuapp.com/${img.src}`).then(resp => resp.blob()).then(blob => {
- cbz.file(name + '-' + (i < 10 ? '00' : '0' ) + i + '.jpg', blob);
-
- i = i+1;
- setTimeout(getOne, 0);
- });
- }
-
- getOne();
- }
-})(jQuery);
diff --git a/trakt.clear-store.user.js b/trakt.clear-store.user.js
deleted file mode 100644
index 9a4ad94..0000000
--- a/trakt.clear-store.user.js
+++ /dev/null
@@ -1,37 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Trakt Storage Clearer
-// @namespace danielrayjones
-// @version 0.0.1
-// @description
-// @author Dan Jones
-// @match https://trakt.tv/users/*/progress*
-// @grant none
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// ==/UserScript==
-
-/* global $, compressedCache, localStorage, MutationObserver */
-/* jshint esversion: 6 */
-
-(function() {
- 'use strict';
-
- const clearStorage = () => localStorage.clear();
-
- /* todo
- $(window).konami({
- code: [80, 73, 67, 75],
- cheat: clearStorage
- });
- */
-
- function addPickButton() {
- const $leftNav = $('.subnav-wrapper .container .left');
- const $found = $leftNav.find('.clear-store');
- if (!$found.length) {
- $leftNav.append('X')
- .find('.clear-store').on('click', clearStorage);
- }
- }
-
-})();
diff --git a/trakt.pick-show.user.js b/trakt.pick-show.user.js
deleted file mode 100644
index b425424..0000000
--- a/trakt.pick-show.user.js
+++ /dev/null
@@ -1,111 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Trakt Show Picker
-// @namespace danielrayjones
-// @version 0.0.10
-// @description Pick a show from progress page
-// @author Dan Jones
-// @match https://trakt.tv/users/*/progress*
-// @grant none
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// ==/UserScript==
-
-/* global $, compressedCache, localStorage, MutationObserver */
-/* jshint esversion: 6 */
-
-(function() {
- 'use strict';
-
- let watched_shows;
-
- $(window).konami({
- code: [80, 73, 67, 75],
- cheat: pickShow
- });
-
- function unghost() {
- $(this).removeClass('sortable-ghost');
- }
-
- function addPickButton() {
- const $leftNav = $('.subnav-wrapper .container .left');
- const $found = $leftNav.find('.pick-episode');
- if (!$found.length) {
- $leftNav.append('')
- .find('.pick-episode').on('click', pickShow);
- }
- }
-
- function refreshPage() {
- addPickButton();
- $('div[data-type="show"]')
- .on('click', unghost);
- }
-
- refreshPage();
- const observer = new MutationObserver(refreshPage);
- observer.observe(document.head.parentElement, {childList: true});
-
- function getWeightedIndex(total) {
- const opts = [];
- for ( let idx = 0; idx < total; idx++) {
- for (let idxInst = 0; idxInst < total - idx; idxInst++) {
- opts.push(idx);
- }
- }
-
- const totalWeights = opts.length;
- const which = Math.floor(Math.random() * totalWeights);
-
- return opts[which];
- }
-
- function pickShow() {
-
- if ('compressedCache' in window) {
- watched_shows = compressedCache.get('watched_shows');
- } else {
- watched_shows = JSON.parse(localStorage.watched_shows);
- }
-
- let $shows = $('div[data-type="show"]');
- $shows.removeClass('sortable-ghost');
- $shows = filterShows($shows);
-
- let picked = getWeightedIndex($shows.length);
- let $picked = $shows.eq(picked);
-
- $shows.addClass('sortable-ghost');
- $picked.removeClass('sortable-ghost').insertAfter($picked.parent().find('.pagination-top'));
-
- }
-
- function filterShows($shows) {
-
- // Milliseconds in two days
- const twoDays = 2 * 24 * 60 * 60 * 1000;
- const twoDaysAgo = (new Date()) - twoDays;
-
- $shows.each(function (i, show) {
-
- const showId = Number.parseInt(show.dataset.showId);
- const showInfo = watched_shows[showId];
- if (!showInfo) return;
-
- const lastWatch = showInfo.ts*1000;
- // Skip ones we've watched in the last two days
- if (lastWatch > twoDaysAgo) {
- show.classList.add('sortable-ghost');
- }
-
- const percentage = show.dataset.percentage;
-
- if (percentage == 100) {
- show.classList.add('sortable-ghost');
- }
- });
-
- return $shows.filter(':not(.sortable-ghost)');
- }
-
-})();
diff --git a/trakt.scraper.user.js b/trakt.scraper.user.js
index c2b81dd..a927bd2 100644
--- a/trakt.scraper.user.js
+++ b/trakt.scraper.user.js
@@ -2,30 +2,28 @@
// ==UserScript==
// @name Trakt Scraper
// @namespace danielrayjones
-// @version 0.0.8
+// @version 0.0.1
// @description Scrape lists of shows/movies from Trakt and download a JSON file
// @author Dan Jones
// @match https://trakt.tv/*
// @grant none
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
+// @require https://raw.githubusercontent.com/tommcfarlin/konami-code/master/src/jquery.konami.min.js
// ==/UserScript==
-/* global $, compressedCache, localStorage */
-/* jshint esversion: 6 */
-
(function() {
'use strict';
$(window).konami({
code: [71,69,84],
- cheat: getStuff
+ eventName: 'konami.get'
});
+ $(window).on('konami.get', getStuff);
+
String.prototype.lpad = function(padString, length) {
let str = this;
- while (str.length < length) {
+ while (str.length < length)
str = padString + str;
- }
return str;
};
@@ -36,14 +34,13 @@
let $ep = $(that);
let $series = $ep.find('[itemtype="http://schema.org/TVSeries"]');
- let this_ep = $ep.data();
-
if ($series.length < 1) {
$series = $('[itemtype="http://schema.org/TVSeries"]');
}
let series = $ep.data('show-id');
let ep = $ep.data('episode-id');
+ //let url = $ep.data('url');
let url = $ep.children('[itemprop="url"]').attr('content');
let series_title = $series.children('[itemprop="name"]').attr('content');
@@ -53,81 +50,49 @@
$ep_title = $ep.find('[itemprop="name"]');
}
- let released = $ep.data('released') || null;
- if (released) {
- released = (new Date(released)).getTime()/1000;
- }
-
let ep_title = $ep_title.attr('content');
let ep_number = $ep.find('[itemprop="episodeNumber"]').attr('content');
let season_number = $ep.data('season-number');
-
- if (!season_number) {
- let $title_ep = $ep.find('.main-title-sxe');
- if ($title_ep.length && $title_ep.text()) {
- let match = /([0-9+])x[0-9]+/.exec($title_ep.text());
- if (match) {
- season_number = match[1];
- }
- }
- }
-
- if (!season_number) {
- season_number = 0;
- }
-
- let title = series_title + " " + String(season_number) + "x" + String(ep_number).lpad("0", 2) + ' "' + ep_title + '"';
+ //let title = $ep.data('title');
+ let title = series_title + " " + season_number + "x" + String(ep_number).lpad("0", 2) + ' "' + ep_title + '"';
let watched = watched_shows[series] ? watched_shows[series].e[ep] : null;
- let $img = $ep.find('[itemprop="image"]');
- if ($img.length > 0) {
- this_ep['image'] = $img.attr('content');
- }
-
- this_ep['series_id'] = series;
- this_ep['episode_id'] = ep;
- this_ep['title'] = title;
- this_ep['url'] = url;
- this_ep['released'] = released;
- this_ep['watches'] = watched ? watched[1] : 0;
- this_ep['last_watched'] = watched ? watched[0] : null;
+ let this_ep = {
+ series_id: series,
+ episode_id: ep,
+ title,
+ url,
+ watches: watched ? watched[1] : 0,
+ last_watched: watched ? watched[0] : null,
+ };
return this_ep;
}
function processMovie(that) {
let $mov = $(that);
- let this_mov = $mov.data();
let id = $mov.data('movie-id');
let title = $mov.children('[itemprop="name"]').attr('content');
let url = $mov.children('[itemprop="url"]').attr('content');
let watched = watched_movies[id];
- let $img = $mov.find('[itemprop="image"]');
- if ($img.length > 0) {
- this_mov['image'] = $img.attr('content');
- }
-
- this_mov['id'] = id;
- this_mov['title'] = title;
- this_mov['url'] = url;
- this_mov['watches'] = watched ? watched[1] : 0;
- this_mov['last_watched'] = watched ? watched[0] : null;
+ let this_mov = {
+ id,
+ title,
+ url,
+ watches: watched ? watched[1] : 0,
+ last_watched: watched ? watched[0] : null,
+ };
return this_mov;
}
function getStuff() {
- if ('compressedCache' in window) {
- watched_shows = compressedCache.get('watched_shows');
- watched_movies = compressedCache.get('watched_movies');
- } else {
- watched_shows = JSON.parse(localStorage.watched_shows);
- watched_movies = JSON.parse(localStorage.watched_movies);
- }
+ watched_shows = JSON.parse(localStorage.watched_shows);
+ watched_movies = JSON.parse(localStorage.watched_movies);
let $el = $('');
$(document.body).append($el);
diff --git a/trakt.simplifier.user.js b/trakt.simplifier.user.js
deleted file mode 100644
index 455372f..0000000
--- a/trakt.simplifier.user.js
+++ /dev/null
@@ -1,78 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Trakt Simplifier
-// @namespace danielrayjones
-// @version 0.0.3
-// @description Strip out eps/movies from trakt lists based on a query string
-// @author Dan Jones
-// @match https://trakt.tv/*
-// @grant none
-// ==/UserScript==
-
-/* jshint esversion: 6 */
-
-(function() {
- 'use strict';
-
- let searches = window.location.search.substr(1).split('&');
- let query = {};
- searches.forEach(function (search) {
- let split = search.split('=');
- query[split[0]] = split[1];
- });
-
- if (!('since' in query)) return;
-
- let since = parseInt(query.since, 10);
-
- let watched_shows;
- let watched_movies;
- if ('compressedCache' in window) {
- watched_shows = compressedCache.get('watched_shows');
- watched_movies = compressedCache.get('watched_movies');
- } else {
- watched_shows = JSON.parse(localStorage.watched_shows);
- watched_movies = JSON.parse(localStorage.watched_movies);
- }
-
- $('[itemtype="http://schema.org/TVEpisode"], [itemtype="http://schema.org/Movie"]').each(function () {
- let type = $(this).attr('itemtype').replace(/^https?:\/\/schema.org\//, '');
-
- switch(type) {
- case "TVEpisode":
- processEpisode(this);
- break;
- case "Movie":
- processMovie(this);
- break;
- }
- });
-
- // Trigger resize
- if ($grid) {
- $grid.data('isotope').layout();
- }
-
- function processEpisode(that) {
- let $ep = $(that);
- let series = $ep.data('show-id');
- let ep = $ep.data('episode-id');
-
- let watched = watched_shows[series] ? watched_shows[series].e[ep] : null;
-
- if (!watched) return;
-
- if (watched[0] > since) $ep.remove();
- }
-
- function processMovie(that) {
- let $mov = $(that);
- let id = $mov.data('movie-id');
-
- let watched = watched_movies[id];
-
- if (!watched) return;
-
- if (watched[0] > since) $ep.remove();
- }
-})();
diff --git a/viewcomic.scraper.user.js b/viewcomic.scraper.user.js
deleted file mode 100644
index 7a0ac98..0000000
--- a/viewcomic.scraper.user.js
+++ /dev/null
@@ -1,73 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name Viewcomic Scraper
-// @namespace danielrayjones
-// @version 0.0.10
-// @description Scrape comics from viewcomic.com
-// @author Dan Jones
-// @match http://viewcomic.com/*
-// @grant none
-// @require https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js
-// @require https://bowercdn.net/c/konami-code-1.3.2/src/jquery.konami.min.js
-// @require https://bowercdn.net/c/jszip-3.1.5/dist/jszip.min.js
-// ==/UserScript==
-
-/* global jQuery, JSZip */
-/* jshint esversion: 6 */
-
-(function($) {
- 'use strict';
-
- $(window).konami({
- code: [71,69,84],
- cheat: getStuff
- });
-
- function getStuff() {
- let i = 0;
-
- let path = location.pathname.split('/');
- let end = path.pop();
- while (!end && path.length) {
- end = path.pop();
- }
- let name = end ? end : 'comic';
-
- let imgs = $('div.pinbin-copy img.picture, div.pinbin-copy img.hoverZoomLink').toArray();
- console.log(imgs);
-
- let cbz = new JSZip();
-
- function downloadCbz() {
- cbz.generateAsync({type: 'blob'})
- .then(blob => {
- let title = name.replace(/-/g, ' ').replace(/\b([0-9]{4})\b/, '($1)');
-
- let $el = $('');
- $(document.body).append($el);
- $el.attr('href', URL.createObjectURL(blob));
- $el.attr('download', `${title} (viewcomic) (Danjones).cbz`);
- $el.get(0).click();
- });
- }
-
- function getOne() {
- if (!imgs || !imgs.length) {
- downloadCbz();
- return;
- }
-
- let img = imgs.shift();
- console.log(img.src);
-
- fetch(img.src).then(resp => resp.blob()).then(blob => {
- cbz.file(name + '-' + (i < 10 ? '00' : '0' ) + i + '.jpg', blob);
-
- i = i+1;
- setTimeout(getOne, 0);
- });
- }
-
- getOne();
- }
-})(jQuery);
diff --git a/wheniwork.hours.user.js b/wheniwork.hours.user.js
deleted file mode 100644
index 41d49af..0000000
--- a/wheniwork.hours.user.js
+++ /dev/null
@@ -1,67 +0,0 @@
-// -*- tab-width: 4; js-indent-level: 4; -*-
-// ==UserScript==
-// @name WhenIWork True Total Worked
-// @namespace danielrayjones
-// @description Adds the Total hours worked, including today
-// @include https://app.wheniwork.com/payroll/
-// @version 0.2.1
-// @require https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js
-// ==/UserScript==
-
-/* global $ */
-/* jshint esversion: 6 */
-
-$(document).ready(function() {
- 'use strict';
-
- // Filter out this event from iframes
- if (!this.body.classList.contains("controller-payroll")) {
- return;
- }
-
- let currentHourSum = 0;
-
- function updateHours(hours) {
- currentHourSum = hours;
-
- let weekPlusDayTotal = $('#week-plus-day-total');
- let span = `Total with Today${hours}`;
-
- if (weekPlusDayTotal.length === 0) {
- $('#header-summary-container .stats').append(
- ``
- );
- } else {
- weekPlusDayTotal.html(span);
- }
-
- // In case this ran while the page was loading, let's try again in two seconds.
- return setTimeout(addHours, 2000);
- }
-
- function addHours() {
- let hourSum = 0;
- $('.times-list .col-worked .text-input[data-total]').each(function () {
- hourSum += parseFloat($(this).text()) || 0;
- });
-
- // Adjust for floating point errors
- hourSum = Math.round(hourSum*100)/100;
-
- console.log(`got ${hourSum} hours`);
-
- // AJAX request hasn't finished yet. Let's wait some more.
- if (currentHourSum === 0 && hourSum === 0) return setTimeout(addHours, 2000);
-
- if (currentHourSum !== hourSum && hourSum > 0) {
- return updateHours(hourSum);
- }
-
- return null;
- }
-
- // The hours don't show up until after an AJAX request completes.
- // Let's wait two seconds for it to finish.
- setTimeout(addHours, 2000);
-
-});