From 0cb210dd4b6750cbe4da29c41a56341a5bcf74fd Mon Sep 17 00:00:00 2001 From: Serraniel Date: Wed, 26 Aug 2020 20:31:56 +0200 Subject: [PATCH] #35 rewrite code to modules --- src/javascript/enhancements/animeRequests.js | 18 ++++++----- src/javascript/enhancements/lists.js | 14 ++++---- src/javascript/enhancements/quickSearch.js | 9 ++++-- src/javascript/index.js | 19 +++++++++++ src/javascript/utils/aniwatchCore.js | 34 +++++++++++--------- src/javascript/utils/helpers.js | 6 ++-- 6 files changed, 65 insertions(+), 35 deletions(-) create mode 100644 src/javascript/index.js diff --git a/src/javascript/enhancements/animeRequests.js b/src/javascript/enhancements/animeRequests.js index d215e73..8bf5ade 100644 --- a/src/javascript/enhancements/animeRequests.js +++ b/src/javascript/enhancements/animeRequests.js @@ -2,14 +2,16 @@ import * as core from '../utils/aniwatchCore'; import * as color from '../utils/colors'; import * as helper from '../utils/helpers'; -core.registerScript(node => { - // run the scripts - if (helper.isHtmlElement(node)) { - changeFollowedStarColor(node); - changeBorderColorOwnRequests(node); - removeUnknownUsers(node); - } -}, "/requests"); +export function init() { + core.registerScript(node => { + // run the scripts + if (helper.isHtmlElement(node)) { + changeFollowedStarColor(node); + changeBorderColorOwnRequests(node); + removeUnknownUsers(node); + } + }, "/requests"); +} function changeFollowedStarColor(node) { const starIcon = 'star'; diff --git a/src/javascript/enhancements/lists.js b/src/javascript/enhancements/lists.js index 72c33e8..eb6ffa6 100644 --- a/src/javascript/enhancements/lists.js +++ b/src/javascript/enhancements/lists.js @@ -1,12 +1,14 @@ import * as core from '../utils/aniwatchCore'; import * as helper from '../utils/helpers'; -core.registerScript(node => { - // run the scripts - if (helper.isHtmlElement(node)) { - addListHorizontalSeparators(node) - } -}, ".*"); +export function init() { + core.registerScript(node => { + // run the scripts + if (helper.isHtmlElement(node)) { + addListHorizontalSeparators(node) + } + }, ".*"); +} function addListHorizontalSeparators(node) { const targetTagName = 'MD-LIST-ITEM'; // tagName is upper case diff --git a/src/javascript/enhancements/quickSearch.js b/src/javascript/enhancements/quickSearch.js index 3ee615f..84604cd 100644 --- a/src/javascript/enhancements/quickSearch.js +++ b/src/javascript/enhancements/quickSearch.js @@ -4,11 +4,14 @@ import * as helper from '../utils/helpers'; const quickSearchID = 'ea-quickSearch'; const quickSearchLink = 'ea-quickSearchLink'; -core.runAfterLoad(() => { - initSearch(); -}, ".*"); +export function init() { + core.runAfterLoad(() => { + initSearch(); + }, ".*"); +} function initSearch() { + console.log("INITSEARCH") let entry = document.createElement('li'); entry.setAttribute('ng-repeat', 'item in navbar'); entry.setAttribute('ng-class', '{\'anime-indicator\': item[\'@attributes\'].title==\'Anime\'}'); diff --git a/src/javascript/index.js b/src/javascript/index.js new file mode 100644 index 0000000..0eb81b4 --- /dev/null +++ b/src/javascript/index.js @@ -0,0 +1,19 @@ +// core +import { initCore } from './utils/aniwatchCore'; +// helper +import { initHelpers } from './utils/helpers'; +// enhancements +import { init as animeRequests } from './enhancements/animeRequests'; +import { init as lists } from './enhancements/lists'; +import { init as quickSearch } from './enhancements/quickSearch'; + +// core +initCore(); + +//helper +initHelpers(); + +// enhancements +animeRequests(); +lists(); +quickSearch(); \ No newline at end of file diff --git a/src/javascript/utils/aniwatchCore.js b/src/javascript/utils/aniwatchCore.js index 31f2f4b..f6c2103 100644 --- a/src/javascript/utils/aniwatchCore.js +++ b/src/javascript/utils/aniwatchCore.js @@ -1,6 +1,24 @@ let __scripts = []; let __afterLoadScripts = []; +export function initCore() { + let observer = new MutationObserver(mutations => { + mutations.forEach(mutation => { + for (let i = 0; i < mutation.addedNodes.length; i++) { + runScripts(mutation.addedNodes[i]); + } + }); + }); + + observer.observe(document.documentElement || document.body, { + childList: true, + subtree: true, + attributes: true + }); + + document.addEventListener("DOMContentLoaded", event => awaitPageLoaded(), false); +} + export function registerScript(func, pattern = '.*') { __scripts.push({ "function": func, "pattern": pattern }); } @@ -13,20 +31,6 @@ export function runScripts(node) { }); } -let observer = new MutationObserver(mutations => { - mutations.forEach(mutation => { - for (let i = 0; i < mutation.addedNodes.length; i++) { - runScripts(mutation.addedNodes[i]); - } - }); -}); - -observer.observe(document.documentElement || document.body, { - childList: true, - subtree: true, - attributes: true -}); - function findPreloader() { return document.getElementById('preloader'); } @@ -40,8 +44,6 @@ export function runAfterLoad(func, pattern = '.*') { } } -document.addEventListener("DOMContentLoaded", event => awaitPageLoaded(), false); - function awaitPageLoaded() { let preLoader = findPreloader(); diff --git a/src/javascript/utils/helpers.js b/src/javascript/utils/helpers.js index 4d6f874..6265b3a 100644 --- a/src/javascript/utils/helpers.js +++ b/src/javascript/utils/helpers.js @@ -5,8 +5,10 @@ export function isHtmlElement(object) { return object instanceof HTMLElement; } -document.addEventListener('keydown', event => handleKeyDown(event)); -document.addEventListener('keyup', event => handleKeyUp(event)); +export function initHelpers() { + document.addEventListener('keydown', event => handleKeyDown(event)); + document.addEventListener('keyup', event => handleKeyUp(event)); +} function handleKeyDown(event) { handleKeyToggle(event, true);