diff options
| author | caleb.mabry.15@cnu.edu <caleb.mabry.15@cnu.edu> | 2022-03-10 23:21:38 -0500 |
|---|---|---|
| committer | caleb.mabry.15@cnu.edu <caleb.mabry.15@cnu.edu> | 2022-03-10 23:21:38 -0500 |
| commit | dc208478fd18a4e28c0083641bf405170859fc58 (patch) | |
| tree | 1fad0ecbaf5639d02908b5f9c9f31f1878ee446c /webAO/utils | |
| parent | 6dd1b296c2dd1d7462dd8514dff43db59ac8dd19 (diff) | |
Magnum Opus pt1
Diffstat (limited to 'webAO/utils')
| -rw-r--r-- | webAO/utils/fileExists.js | 17 | ||||
| -rw-r--r-- | webAO/utils/fileExistsSync.js | 11 | ||||
| -rw-r--r-- | webAO/utils/getAnimLength.js | 22 | ||||
| -rw-r--r-- | webAO/utils/getResources.js | 39 | ||||
| -rw-r--r-- | webAO/utils/queryParser.js | 9 |
5 files changed, 98 insertions, 0 deletions
diff --git a/webAO/utils/fileExists.js b/webAO/utils/fileExists.js new file mode 100644 index 0000000..261acda --- /dev/null +++ b/webAO/utils/fileExists.js @@ -0,0 +1,17 @@ +const fileExists = async (url) => { + const xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.onload = function (e) { + if (xhr.readyState === 4) { + if (xhr.status === 200) { + return true; + } + return false; + } + }; + xhr.onerror = function (e) { + return false; + }; + xhr.send(null); +}; +export default fileExists; diff --git a/webAO/utils/fileExistsSync.js b/webAO/utils/fileExistsSync.js new file mode 100644 index 0000000..1d7fde2 --- /dev/null +++ b/webAO/utils/fileExistsSync.js @@ -0,0 +1,11 @@ +const fileExistsSync = (url) => { + try { + const http = new XMLHttpRequest(); + http.open('HEAD', url, false); + http.send(); + return http.status != 404; + } catch (e) { + return false; + } +}; +export default fileExistsSync; diff --git a/webAO/utils/getAnimLength.js b/webAO/utils/getAnimLength.js new file mode 100644 index 0000000..e64703f --- /dev/null +++ b/webAO/utils/getAnimLength.js @@ -0,0 +1,22 @@ +import calculatorHandler from './calculatorHandler'; +import fileExists from './fileExists.js'; +/** + * Gets animation length. If the animation cannot be found, it will + * silently fail and return 0 instead. + * @param {string} filename the animation file name + */ + +const getAnimLength = async (url) => { + const extensions = ['.gif', '.webp']; + for (const extension of extensions) { + const urlWithExtension = url + extension; + const exists = await fileExists(urlWithExtension); + if (exists) { + const fileBuffer = await requestBuffer(urlWithExtension); + const length = calculatorHandler[extension](fileBuffer); + return length; + } + } + return 0; +}; +export default getAnimLength; diff --git a/webAO/utils/getResources.js b/webAO/utils/getResources.js new file mode 100644 index 0000000..a0c513e --- /dev/null +++ b/webAO/utils/getResources.js @@ -0,0 +1,39 @@ +const getResources = (AO_HOST, THEME) => ({ + holdit: { + src: `${AO_HOST}misc/default/holdit_bubble.png`, + duration: 720, + }, + objection: { + src: `${AO_HOST}misc/default/objection_bubble.png`, + duration: 720, + }, + takethat: { + src: `${AO_HOST}misc/default/takethat_bubble.png`, + duration: 840, + }, + custom: { + src: '', + duration: 840, + }, + witnesstestimony: { + src: `${AO_HOST}themes/${THEME}/witnesstestimony.gif`, + duration: 1560, + sfx: `${AO_HOST}sounds/general/sfx-testimony.opus`, + }, + crossexamination: { + src: `${AO_HOST}themes/${THEME}/crossexamination.gif`, + duration: 1600, + sfx: `${AO_HOST}sounds/general/sfx-testimony2.opus`, + }, + guilty: { + src: `${AO_HOST}themes/${THEME}/guilty.gif`, + duration: 2870, + sfx: `${AO_HOST}sounds/general/sfx-guilty.opus`, + }, + notguilty: { + src: `${AO_HOST}themes/${THEME}/notguilty.gif`, + duration: 2440, + sfx: `${AO_HOST}sounds/general/sfx-notguilty.opus`, + }, +}); +export default getResources; diff --git a/webAO/utils/queryParser.js b/webAO/utils/queryParser.js new file mode 100644 index 0000000..1c2b83a --- /dev/null +++ b/webAO/utils/queryParser.js @@ -0,0 +1,9 @@ +// Get the arguments from the URL bar +const queryParser = () => { + const queryDict = {}; + location.search.substr(1).split('&').forEach((item) => { + queryDict[item.split('=')[0]] = item.split('=')[1]; + }); + return queryDict; +}; +export default queryParser; |
