aboutsummaryrefslogtreecommitdiff
path: root/src/services
diff options
context:
space:
mode:
Diffstat (limited to 'src/services')
-rw-r--r--src/services/entity_normalizer/entity_normalizer.service.js2
-rw-r--r--src/services/file_type/file_type.service.js4
-rw-r--r--src/services/ruffle_service/ruffle_service.js40
3 files changed, 45 insertions, 1 deletions
diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js
index 9b2b30e6..a4ddf927 100644
--- a/src/services/entity_normalizer/entity_normalizer.service.js
+++ b/src/services/entity_normalizer/entity_normalizer.service.js
@@ -205,7 +205,7 @@ export const parseUser = (data) => {
// Convert punycode to unicode for UI
output.screen_name_ui = output.screen_name
- if (output.screen_name.includes('@')) {
+ if (output.screen_name && output.screen_name.includes('@')) {
const parts = output.screen_name.split('@')
let unicodeDomain = punycode.toUnicode(parts[1])
if (unicodeDomain !== parts[1]) {
diff --git a/src/services/file_type/file_type.service.js b/src/services/file_type/file_type.service.js
index 2a046bec..5182ecd1 100644
--- a/src/services/file_type/file_type.service.js
+++ b/src/services/file_type/file_type.service.js
@@ -2,6 +2,10 @@
// or the entire service could be just mimetype service that only operates
// on mimetypes and not files. Currently the naming is confusing.
const fileType = mimetype => {
+ if (mimetype.match(/flash/)) {
+ return 'flash'
+ }
+
if (mimetype.match(/text\/html/)) {
return 'html'
}
diff --git a/src/services/ruffle_service/ruffle_service.js b/src/services/ruffle_service/ruffle_service.js
new file mode 100644
index 00000000..7411dd96
--- /dev/null
+++ b/src/services/ruffle_service/ruffle_service.js
@@ -0,0 +1,40 @@
+const createRuffleService = () => {
+ let ruffleInstance = null
+
+ const getRuffle = () => new Promise((resolve, reject) => {
+ if (ruffleInstance) {
+ resolve(ruffleInstance)
+ return
+ }
+ // Ruffle needs these to be set before it's loaded
+ // https://github.com/ruffle-rs/ruffle/issues/3952
+ window.RufflePlayer = {}
+ window.RufflePlayer.config = {
+ polyfills: false,
+ publicPath: '/static/ruffle'
+ }
+
+ // Currently it's seems like a better way of loading ruffle
+ // because it needs the wasm publically accessible, but it needs path to it
+ // and filename of wasm seems to be pseudo-randomly generated (is it a hash?)
+ const script = document.createElement('script')
+ // see webpack config, using CopyPlugin to copy it from node_modules
+ // provided via ruffle-mirror
+ script.src = '/static/ruffle/ruffle.js'
+ script.type = 'text/javascript'
+ script.onerror = (e) => { reject(e) }
+ script.onabort = (e) => { reject(e) }
+ script.oncancel = (e) => { reject(e) }
+ script.onload = () => {
+ ruffleInstance = window.RufflePlayer
+ resolve(ruffleInstance)
+ }
+ document.body.appendChild(script)
+ })
+
+ return { getRuffle }
+}
+
+const RuffleService = createRuffleService()
+
+export default RuffleService