From c37cce3633e7764fe2da1626e3452a1e305b4995 Mon Sep 17 00:00:00 2001 From: Kylart Date: Sat, 21 Jul 2018 02:15:51 +0200 Subject: [PATCH] Restructured architecture --- .eslintrc.js | 1 + app/index.js | 2 + index.html => app/main/index.html | 2 +- main.js => app/main/index.js | 173 +++--------------- .../main/resources}/index-bg.jpg | Bin {assets => app/main/resources}/menu.js | 0 .../images => app/main/resources}/tray.png | Bin {server => app/main/server}/config/config.js | 0 {server => app/main/server}/config/index.js | 0 .../main/server}/config/setupAccount.js | 0 {server => app/main/server}/env/env.js | 0 {server => app/main/server}/env/index.js | 0 {server => app/main/server}/env/isOnline.js | 0 .../main/server}/env/releaseNotes.js | 2 +- .../main/server}/env/updateReleaseVersion.js | 2 +- {server => app/main/server}/env/win.js | 0 {server => app/main/server}/generateEnv.js | 0 .../main/server}/history/history.js | 0 {server => app/main/server}/history/index.js | 0 .../main/server}/horrible/horrible.js | 0 {server => app/main/server}/horrible/index.js | 0 {server => app/main/server}/index.js | 0 {server => app/main/server}/local/index.js | 0 {server => app/main/server}/local/local.js | 0 {server => app/main/server}/mal/index.js | 0 {server => app/main/server}/mal/official.js | 0 {server => app/main/server}/mal/scrap.js | 0 {server => app/main/server}/news/index.js | 0 {server => app/main/server}/news/news.js | 0 {server => app/main/server}/nyaa/download.js | 0 {server => app/main/server}/nyaa/getLatest.js | 0 {server => app/main/server}/nyaa/index.js | 0 .../main/server}/openExternal/index.js | 0 .../main/server}/openExternal/openExternal.js | 0 .../main/server}/search/episodes.js | 0 {server => app/main/server}/search/index.js | 0 {server => app/main/server}/search/search.js | 0 {server => app/main/server}/seasons/index.js | 0 .../main/server}/seasons/seasons.js | 0 {server => app/main/server}/torrent/index.js | 0 .../main/server}/torrent/torrent.js | 0 {server => app/main/server}/updater/index.js | 0 {server => app/main/server}/utils/dir.js | 0 {server => app/main/server}/utils/index.js | 0 {server => app/main/server}/utils/logger.js | 0 .../main/server}/utils/removeUnwanted.js | 0 {server => app/main/server}/vault/index.js | 0 {server => app/main/server}/video/index.js | 0 .../main/server}/video/streaming.js | 0 .../main/server}/watchList/index.js | 0 .../main/server}/watchList/watchList.js | 0 {assets => app/web/assets}/App.vue | 9 - {assets => app/web/assets}/app.js | 4 +- {assets => app/web/assets}/entry-client.js | 0 {assets => app/web/assets}/entry-server.js | 0 .../iconfont/MaterialIcons-Regular.eot | Bin .../iconfont/MaterialIcons-Regular.ijmap | 0 .../iconfont/MaterialIcons-Regular.svg | 0 .../iconfont/MaterialIcons-Regular.ttf | Bin .../iconfont/MaterialIcons-Regular.woff | Bin .../iconfont/MaterialIcons-Regular.woff2 | Bin {assets => app/web/assets}/iconfont/README.md | 0 .../web/assets}/iconfont/codepoints | 0 .../web/assets}/index.template.html | 0 .../web/assets}/stylus/electron.styl | 0 .../web/assets}/stylus/functions.styl | 0 {assets => app/web/assets}/stylus/global.styl | 0 {assets => app/web/assets}/stylus/main.styl | 2 +- .../web/assets}/stylus/material-icons.styl | 0 .../web/assets}/stylus/scrollbar.styl | 0 {assets => app/web/assets}/stylus/theme.js | 0 .../web/assets}/stylus/transitions.styl | 0 .../web/assets}/subtitle-parser/ass/index.js | 0 .../web/assets}/subtitle-parser/ass/styles.js | 0 .../assets}/subtitle-parser/ass/subtitles.js | 0 .../web/assets}/subtitle-parser/ass/tags.js | 0 .../web/assets}/subtitle-parser/ass/tracks.js | 0 .../web/assets}/subtitle-parser/ass/utils.js | 0 .../web/assets}/subtitle-parser/index.js | 0 {assets => app/web/assets}/vuetify.js | 0 {components => app/web/components}/_index.js | 0 .../web/components}/choiceWindow.vue | 0 {components => app/web/components}/env.vue | 0 .../web/components}/historyModal.vue | 0 .../web/components}/infoModal.vue | 0 .../web/components}/infoResults.vue | 0 .../web/components}/kFooter.vue | 0 .../web/components}/listEntry.vue | 0 {components => app/web/components}/loader.vue | 0 {components => app/web/components}/logs.vue | 0 .../web/components}/magnetsModal.vue | 0 .../web/components}/malForm.vue | 0 {components => app/web/components}/news.vue | 0 .../web/components}/overlay.vue | 0 .../web/components}/playerSlider.vue | 0 .../web/components}/settings.vue | 0 .../web/components}/videoModal.vue | 0 .../web/components}/videoPlayer.vue | 0 app/web/index.js | 132 +++++++++++++ {mixins => app/web/mixins}/global/dragDrop.js | 0 {mixins => app/web/mixins}/global/meta.js | 0 .../web/mixins}/global/readMagnet.js | 0 .../web/mixins}/subtitles/checkOverlap.js | 0 .../web/mixins}/subtitles/getStyle.js | 0 {mixins => app/web/mixins}/subtitles/index.js | 0 .../web/mixins}/subtitles/timing.js | 0 {pages => app/web/pages}/downloader.vue | 0 {pages => app/web/pages}/localPage.vue | 0 {pages => app/web/pages}/malPage.vue | 0 {pages => app/web/pages}/news.vue | 0 {pages => app/web/pages}/releases.vue | 0 {pages => app/web/pages}/seasons.vue | 0 {pages => app/web/pages}/streaming.vue | 0 {pages => app/web/pages}/torrenting.vue | 0 {pages => app/web/pages}/watchList.vue | 0 {router => app/web/router}/301.json | 0 {router => app/web/router}/index.js | 0 {router => app/web/router}/meta.js | 0 {static => app/web/static}/favicon.ico | Bin .../web/static}/images/downloader-back.jpg | Bin .../static}/images/downloader-char-left.png | Bin .../static}/images/downloader-char-right.png | Bin .../web/static}/images/empty-bg.png | Bin {static => app/web/static}/images/error.jpg | Bin {static => app/web/static}/images/fb-icon.png | Bin .../web/static}/images/github-icon.png | Bin {static => app/web/static}/images/icon2.png | Bin .../web/static}/images/leftBackground-1.png | Bin .../images/leftBackground-2-Original.png | Bin .../web/static}/images/leftBackground.png | Bin .../web/static}/images/loading-gif1.gif | Bin .../web/static}/images/loading-gif2.gif | Bin .../web/static}/images/mail-icon.png | Bin {static => app/web/static}/images/mal.png | Bin {static => app/web/static}/images/overlay.jpg | Bin .../web/static}/images/sidebar-background.png | Bin .../web/static}/images/twitter-icon.png | Bin .../web/static}/sounds/Cute Baka.mp3 | Bin .../web/static}/sounds/Nico Nico Nii.mp3 | Bin .../web/static}/sounds/Nyanpasu.mp3 | Bin {static => app/web/static}/sounds/Poi.mp3 | Bin {store => app/web/store}/actions.js | 0 {store => app/web/store}/getters.js | 0 {store => app/web/store}/index.js | 0 .../web/store}/modules/config/actions.js | 0 .../web/store}/modules/config/getters.js | 0 .../web/store}/modules/config/index.js | 0 .../web/store}/modules/config/mutations.js | 0 .../web/store}/modules/config/state.js | 0 .../web/store}/modules/downloader/actions.js | 0 .../web/store}/modules/downloader/getters.js | 0 .../web/store}/modules/downloader/index.js | 0 .../store}/modules/downloader/mutations.js | 0 .../web/store}/modules/downloader/state.js | 0 .../web/store}/modules/history/actions.js | 0 .../web/store}/modules/history/getters.js | 0 .../web/store}/modules/history/index.js | 0 .../web/store}/modules/history/mutations.js | 0 .../web/store}/modules/history/state.js | 0 {store => app/web/store}/modules/index.js | 0 {store => app/web/store}/modules/lists.js | 0 .../web/store}/modules/localFiles/actions.js | 0 .../web/store}/modules/localFiles/getters.js | 0 .../web/store}/modules/localFiles/index.js | 0 .../store}/modules/localFiles/mutations.js | 0 .../web/store}/modules/localFiles/state.js | 0 .../web/store}/modules/logs/actions.js | 0 .../web/store}/modules/logs/getters.js | 0 .../web/store}/modules/logs/index.js | 0 .../web/store}/modules/logs/mutations.js | 0 .../web/store}/modules/logs/state.js | 0 .../web/store}/modules/mal/actions.js | 0 .../web/store}/modules/mal/getters.js | 0 {store => app/web/store}/modules/mal/index.js | 0 .../web/store}/modules/mal/mutations.js | 0 {store => app/web/store}/modules/mal/state.js | 0 .../web/store}/modules/news/actions.js | 0 .../web/store}/modules/news/getters.js | 0 .../web/store}/modules/news/index.js | 0 .../web/store}/modules/news/mutations.js | 0 .../web/store}/modules/news/state.js | 0 .../web/store}/modules/overlay/index.js | 0 .../web/store}/modules/overlay/mutations.js | 0 .../web/store}/modules/overlay/state.js | 0 .../web/store}/modules/player/actions.js | 0 .../web/store}/modules/player/index.js | 0 .../web/store}/modules/releases/actions.js | 0 .../web/store}/modules/releases/getters.js | 0 .../web/store}/modules/releases/index.js | 0 .../web/store}/modules/releases/mutations.js | 0 .../web/store}/modules/releases/state.js | 0 .../web/store}/modules/search/actions.js | 0 .../web/store}/modules/search/getters.js | 0 .../web/store}/modules/search/index.js | 0 .../web/store}/modules/search/mutations.js | 0 .../web/store}/modules/search/state.js | 0 .../web/store}/modules/seasons/actions.js | 0 .../web/store}/modules/seasons/getters.js | 0 .../web/store}/modules/seasons/index.js | 0 .../web/store}/modules/seasons/mutations.js | 0 .../web/store}/modules/seasons/state.js | 0 .../web/store}/modules/streaming/actions.js | 0 .../web/store}/modules/streaming/getters.js | 0 .../web/store}/modules/streaming/index.js | 0 .../web/store}/modules/streaming/mutations.js | 0 .../web/store}/modules/streaming/state.js | 0 .../web/store}/modules/update/actions.js | 0 .../web/store}/modules/update/getters.js | 0 .../web/store}/modules/update/index.js | 0 .../web/store}/modules/update/mutations.js | 0 .../web/store}/modules/update/state.js | 0 .../web/store}/modules/watchLists/actions.js | 0 .../web/store}/modules/watchLists/getters.js | 0 .../web/store}/modules/watchLists/index.js | 0 .../store}/modules/watchLists/mutations.js | 0 .../web/store}/modules/watchLists/state.js | 0 {store => app/web/store}/mutations.js | 0 {store => app/web/store}/state.js | 0 {store => app/web/store}/utils.js | 0 assets/improvements.todo | 14 -- package.json | 13 +- .../nightwatch.config.js | 0 webpack/setup-dev-server.js | 6 +- webpack/webpack.base.config.js | 2 +- webpack/webpack.client.config.js | 2 +- webpack/webpack.server.config.js | 2 +- 226 files changed, 181 insertions(+), 187 deletions(-) create mode 100644 app/index.js rename index.html => app/main/index.html (92%) rename main.js => app/main/index.js (53%) rename {static/images => app/main/resources}/index-bg.jpg (100%) rename {assets => app/main/resources}/menu.js (100%) rename {static/images => app/main/resources}/tray.png (100%) rename {server => app/main/server}/config/config.js (100%) rename {server => app/main/server}/config/index.js (100%) rename {server => app/main/server}/config/setupAccount.js (100%) rename {server => app/main/server}/env/env.js (100%) rename {server => app/main/server}/env/index.js (100%) rename {server => app/main/server}/env/isOnline.js (100%) rename {server => app/main/server}/env/releaseNotes.js (87%) rename {server => app/main/server}/env/updateReleaseVersion.js (81%) rename {server => app/main/server}/env/win.js (100%) rename {server => app/main/server}/generateEnv.js (100%) rename {server => app/main/server}/history/history.js (100%) rename {server => app/main/server}/history/index.js (100%) rename {server => app/main/server}/horrible/horrible.js (100%) rename {server => app/main/server}/horrible/index.js (100%) rename {server => app/main/server}/index.js (100%) rename {server => app/main/server}/local/index.js (100%) rename {server => app/main/server}/local/local.js (100%) rename {server => app/main/server}/mal/index.js (100%) rename {server => app/main/server}/mal/official.js (100%) rename {server => app/main/server}/mal/scrap.js (100%) rename {server => app/main/server}/news/index.js (100%) rename {server => app/main/server}/news/news.js (100%) rename {server => app/main/server}/nyaa/download.js (100%) rename {server => app/main/server}/nyaa/getLatest.js (100%) rename {server => app/main/server}/nyaa/index.js (100%) rename {server => app/main/server}/openExternal/index.js (100%) rename {server => app/main/server}/openExternal/openExternal.js (100%) rename {server => app/main/server}/search/episodes.js (100%) rename {server => app/main/server}/search/index.js (100%) rename {server => app/main/server}/search/search.js (100%) rename {server => app/main/server}/seasons/index.js (100%) rename {server => app/main/server}/seasons/seasons.js (100%) rename {server => app/main/server}/torrent/index.js (100%) rename {server => app/main/server}/torrent/torrent.js (100%) rename {server => app/main/server}/updater/index.js (100%) rename {server => app/main/server}/utils/dir.js (100%) rename {server => app/main/server}/utils/index.js (100%) rename {server => app/main/server}/utils/logger.js (100%) rename {server => app/main/server}/utils/removeUnwanted.js (100%) rename {server => app/main/server}/vault/index.js (100%) rename {server => app/main/server}/video/index.js (100%) rename {server => app/main/server}/video/streaming.js (100%) rename {server => app/main/server}/watchList/index.js (100%) rename {server => app/main/server}/watchList/watchList.js (100%) rename {assets => app/web/assets}/App.vue (96%) rename {assets => app/web/assets}/app.js (93%) rename {assets => app/web/assets}/entry-client.js (100%) rename {assets => app/web/assets}/entry-server.js (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.eot (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.ijmap (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.svg (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.ttf (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.woff (100%) rename {assets => app/web/assets}/iconfont/MaterialIcons-Regular.woff2 (100%) rename {assets => app/web/assets}/iconfont/README.md (100%) rename {assets => app/web/assets}/iconfont/codepoints (100%) rename {assets => app/web/assets}/index.template.html (100%) rename {assets => app/web/assets}/stylus/electron.styl (100%) rename {assets => app/web/assets}/stylus/functions.styl (100%) rename {assets => app/web/assets}/stylus/global.styl (100%) rename {assets => app/web/assets}/stylus/main.styl (86%) rename {assets => app/web/assets}/stylus/material-icons.styl (100%) rename {assets => app/web/assets}/stylus/scrollbar.styl (100%) rename {assets => app/web/assets}/stylus/theme.js (100%) rename {assets => app/web/assets}/stylus/transitions.styl (100%) rename {assets => app/web/assets}/subtitle-parser/ass/index.js (100%) rename {assets => app/web/assets}/subtitle-parser/ass/styles.js (100%) rename {assets => app/web/assets}/subtitle-parser/ass/subtitles.js (100%) rename {assets => app/web/assets}/subtitle-parser/ass/tags.js (100%) rename {assets => app/web/assets}/subtitle-parser/ass/tracks.js (100%) rename {assets => app/web/assets}/subtitle-parser/ass/utils.js (100%) rename {assets => app/web/assets}/subtitle-parser/index.js (100%) rename {assets => app/web/assets}/vuetify.js (100%) rename {components => app/web/components}/_index.js (100%) rename {components => app/web/components}/choiceWindow.vue (100%) rename {components => app/web/components}/env.vue (100%) rename {components => app/web/components}/historyModal.vue (100%) rename {components => app/web/components}/infoModal.vue (100%) rename {components => app/web/components}/infoResults.vue (100%) rename {components => app/web/components}/kFooter.vue (100%) rename {components => app/web/components}/listEntry.vue (100%) rename {components => app/web/components}/loader.vue (100%) rename {components => app/web/components}/logs.vue (100%) rename {components => app/web/components}/magnetsModal.vue (100%) rename {components => app/web/components}/malForm.vue (100%) rename {components => app/web/components}/news.vue (100%) rename {components => app/web/components}/overlay.vue (100%) rename {components => app/web/components}/playerSlider.vue (100%) rename {components => app/web/components}/settings.vue (100%) rename {components => app/web/components}/videoModal.vue (100%) rename {components => app/web/components}/videoPlayer.vue (100%) create mode 100644 app/web/index.js rename {mixins => app/web/mixins}/global/dragDrop.js (100%) rename {mixins => app/web/mixins}/global/meta.js (100%) rename {mixins => app/web/mixins}/global/readMagnet.js (100%) rename {mixins => app/web/mixins}/subtitles/checkOverlap.js (100%) rename {mixins => app/web/mixins}/subtitles/getStyle.js (100%) rename {mixins => app/web/mixins}/subtitles/index.js (100%) rename {mixins => app/web/mixins}/subtitles/timing.js (100%) rename {pages => app/web/pages}/downloader.vue (100%) rename {pages => app/web/pages}/localPage.vue (100%) rename {pages => app/web/pages}/malPage.vue (100%) rename {pages => app/web/pages}/news.vue (100%) rename {pages => app/web/pages}/releases.vue (100%) rename {pages => app/web/pages}/seasons.vue (100%) rename {pages => app/web/pages}/streaming.vue (100%) rename {pages => app/web/pages}/torrenting.vue (100%) rename {pages => app/web/pages}/watchList.vue (100%) rename {router => app/web/router}/301.json (100%) rename {router => app/web/router}/index.js (100%) rename {router => app/web/router}/meta.js (100%) rename {static => app/web/static}/favicon.ico (100%) rename {static => app/web/static}/images/downloader-back.jpg (100%) rename {static => app/web/static}/images/downloader-char-left.png (100%) rename {static => app/web/static}/images/downloader-char-right.png (100%) rename {static => app/web/static}/images/empty-bg.png (100%) rename {static => app/web/static}/images/error.jpg (100%) rename {static => app/web/static}/images/fb-icon.png (100%) rename {static => app/web/static}/images/github-icon.png (100%) rename {static => app/web/static}/images/icon2.png (100%) rename {static => app/web/static}/images/leftBackground-1.png (100%) rename {static => app/web/static}/images/leftBackground-2-Original.png (100%) rename {static => app/web/static}/images/leftBackground.png (100%) rename {static => app/web/static}/images/loading-gif1.gif (100%) rename {static => app/web/static}/images/loading-gif2.gif (100%) rename {static => app/web/static}/images/mail-icon.png (100%) rename {static => app/web/static}/images/mal.png (100%) rename {static => app/web/static}/images/overlay.jpg (100%) rename {static => app/web/static}/images/sidebar-background.png (100%) rename {static => app/web/static}/images/twitter-icon.png (100%) rename {static => app/web/static}/sounds/Cute Baka.mp3 (100%) rename {static => app/web/static}/sounds/Nico Nico Nii.mp3 (100%) rename {static => app/web/static}/sounds/Nyanpasu.mp3 (100%) rename {static => app/web/static}/sounds/Poi.mp3 (100%) rename {store => app/web/store}/actions.js (100%) rename {store => app/web/store}/getters.js (100%) rename {store => app/web/store}/index.js (100%) rename {store => app/web/store}/modules/config/actions.js (100%) rename {store => app/web/store}/modules/config/getters.js (100%) rename {store => app/web/store}/modules/config/index.js (100%) rename {store => app/web/store}/modules/config/mutations.js (100%) rename {store => app/web/store}/modules/config/state.js (100%) rename {store => app/web/store}/modules/downloader/actions.js (100%) rename {store => app/web/store}/modules/downloader/getters.js (100%) rename {store => app/web/store}/modules/downloader/index.js (100%) rename {store => app/web/store}/modules/downloader/mutations.js (100%) rename {store => app/web/store}/modules/downloader/state.js (100%) rename {store => app/web/store}/modules/history/actions.js (100%) rename {store => app/web/store}/modules/history/getters.js (100%) rename {store => app/web/store}/modules/history/index.js (100%) rename {store => app/web/store}/modules/history/mutations.js (100%) rename {store => app/web/store}/modules/history/state.js (100%) rename {store => app/web/store}/modules/index.js (100%) rename {store => app/web/store}/modules/lists.js (100%) rename {store => app/web/store}/modules/localFiles/actions.js (100%) rename {store => app/web/store}/modules/localFiles/getters.js (100%) rename {store => app/web/store}/modules/localFiles/index.js (100%) rename {store => app/web/store}/modules/localFiles/mutations.js (100%) rename {store => app/web/store}/modules/localFiles/state.js (100%) rename {store => app/web/store}/modules/logs/actions.js (100%) rename {store => app/web/store}/modules/logs/getters.js (100%) rename {store => app/web/store}/modules/logs/index.js (100%) rename {store => app/web/store}/modules/logs/mutations.js (100%) rename {store => app/web/store}/modules/logs/state.js (100%) rename {store => app/web/store}/modules/mal/actions.js (100%) rename {store => app/web/store}/modules/mal/getters.js (100%) rename {store => app/web/store}/modules/mal/index.js (100%) rename {store => app/web/store}/modules/mal/mutations.js (100%) rename {store => app/web/store}/modules/mal/state.js (100%) rename {store => app/web/store}/modules/news/actions.js (100%) rename {store => app/web/store}/modules/news/getters.js (100%) rename {store => app/web/store}/modules/news/index.js (100%) rename {store => app/web/store}/modules/news/mutations.js (100%) rename {store => app/web/store}/modules/news/state.js (100%) rename {store => app/web/store}/modules/overlay/index.js (100%) rename {store => app/web/store}/modules/overlay/mutations.js (100%) rename {store => app/web/store}/modules/overlay/state.js (100%) rename {store => app/web/store}/modules/player/actions.js (100%) rename {store => app/web/store}/modules/player/index.js (100%) rename {store => app/web/store}/modules/releases/actions.js (100%) rename {store => app/web/store}/modules/releases/getters.js (100%) rename {store => app/web/store}/modules/releases/index.js (100%) rename {store => app/web/store}/modules/releases/mutations.js (100%) rename {store => app/web/store}/modules/releases/state.js (100%) rename {store => app/web/store}/modules/search/actions.js (100%) rename {store => app/web/store}/modules/search/getters.js (100%) rename {store => app/web/store}/modules/search/index.js (100%) rename {store => app/web/store}/modules/search/mutations.js (100%) rename {store => app/web/store}/modules/search/state.js (100%) rename {store => app/web/store}/modules/seasons/actions.js (100%) rename {store => app/web/store}/modules/seasons/getters.js (100%) rename {store => app/web/store}/modules/seasons/index.js (100%) rename {store => app/web/store}/modules/seasons/mutations.js (100%) rename {store => app/web/store}/modules/seasons/state.js (100%) rename {store => app/web/store}/modules/streaming/actions.js (100%) rename {store => app/web/store}/modules/streaming/getters.js (100%) rename {store => app/web/store}/modules/streaming/index.js (100%) rename {store => app/web/store}/modules/streaming/mutations.js (100%) rename {store => app/web/store}/modules/streaming/state.js (100%) rename {store => app/web/store}/modules/update/actions.js (100%) rename {store => app/web/store}/modules/update/getters.js (100%) rename {store => app/web/store}/modules/update/index.js (100%) rename {store => app/web/store}/modules/update/mutations.js (100%) rename {store => app/web/store}/modules/update/state.js (100%) rename {store => app/web/store}/modules/watchLists/actions.js (100%) rename {store => app/web/store}/modules/watchLists/getters.js (100%) rename {store => app/web/store}/modules/watchLists/index.js (100%) rename {store => app/web/store}/modules/watchLists/mutations.js (100%) rename {store => app/web/store}/modules/watchLists/state.js (100%) rename {store => app/web/store}/mutations.js (100%) rename {store => app/web/store}/state.js (100%) rename {store => app/web/store}/utils.js (100%) delete mode 100644 assets/improvements.todo rename nightwatch.conf.js => test/nightwatch.config.js (100%) diff --git a/.eslintrc.js b/.eslintrc.js index 127e7ba..947be40 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -4,6 +4,7 @@ module.exports = { 'plugin:vue/essential' ], parserOptions: { + parser: 'babel-eslint', ecmaVersion: 2017 } }; diff --git a/app/index.js b/app/index.js new file mode 100644 index 0000000..8b45741 --- /dev/null +++ b/app/index.js @@ -0,0 +1,2 @@ +require('./web') +require('./main') diff --git a/index.html b/app/main/index.html similarity index 92% rename from index.html rename to app/main/index.html index 9aa19db..272eef3 100755 --- a/index.html +++ b/app/main/index.html @@ -10,7 +10,7 @@ padding: 0; height: 100%; width: 100%; - background-image: url("static/images/index-bg.jpg"); + background-image: url("resources/index-bg.jpg"); background-size: cover; background-position: bottom; background-repeat: no-repeat; diff --git a/main.js b/app/main/index.js similarity index 53% rename from main.js rename to app/main/index.js index d341715..45aba70 100644 --- a/main.js +++ b/app/main/index.js @@ -1,154 +1,27 @@ -require('colors') const fs = require('fs') -const {homedir} = require('os') +const {homedir, userInfo} = require('os') const path = require('path') const http = require('http') const axios = require('axios') -const LRU = require('lru-cache') -const express = require('express') -const compression = require('compression') -const resolve = file => path.resolve(__dirname, file) -const { createBundleRenderer } = require('vue-server-renderer') -const redirects = require(path.join(__dirname, '/router/301.json')) -const isDev = process.env.NODE_ENV === 'development' -const useMicroCache = process.env.MICRO_CACHE !== 'false' -const serverInfo = - `express/${require('express/package.json').version} ` + - `vue-server-renderer/${require('vue-server-renderer/package.json').version}` - -const app = express() - -const template = fs.readFileSync(path.join(__dirname, 'assets/index.template.html'), 'utf-8') - -function createRenderer (bundle, options) { - // https://github.com/vuejs/vue/blob/dev/packages/vue-server-renderer/README.md#why-use-bundlerenderer - return createBundleRenderer(bundle, Object.assign(options, { - template, - // for component caching - cache: LRU({ - max: 1000, - maxAge: 1000 * 60 * 15 - }), - // this is only needed when vue-server-renderer is npm-linked - basedir: resolve(__dirname, 'public'), - // performance - runInNewContext: false - })) -} - -let renderer -let readyPromise -if (!isDev) { - const bundle = require(path.join(__dirname, 'public', 'vue-ssr-server-bundle.json')) - const clientManifest = require(path.join(__dirname, 'public', 'vue-ssr-client-manifest.json')) - renderer = createRenderer(bundle, { - clientManifest - }) -} else { - // hot reload - readyPromise = require(path.join(__dirname, 'webpack', 'setup-dev-server.js'))(app, (bundle, options) => { - renderer = createRenderer(bundle, options) - }) -} - -const serve = (path, cache) => express.static(resolve(path), { - maxAge: cache && !isDev ? 60 * 60 * 24 * 30 : 0 -}) - -app.use(compression({ - threshold: 0, - filter (req, res) { - return res.getHeader('Content-Type') === 'text/event-stream' - ? false - : compression.filter(req, res) - } -})) -app.use('/static', serve(path.join(__dirname, 'static'), true)) -app.use('/public', serve(path.join(__dirname, 'public'), true)) - -// Setup the api -require(path.join(__dirname, 'server'))(app) - -// 301 redirect for changed routes -Object.keys(redirects).forEach((k) => { - app.get(k, (req, res) => res.redirect(301, redirects[k])) -}) - -// 1-second microcache. -// https://www.nginx.com/blog/benefits-of-microcaching-nginx/ -const microCache = LRU({ - max: 100, - maxAge: 1000 -}) - -const isCacheable = req => useMicroCache - -function render ({url}, res) { - const s = Date.now() - - res.setHeader('Content-Type', 'text/html') - res.setHeader('Server', serverInfo) - - const handleError = (err) => { - if (err && err.code === 404) { - res.status(404).send('404 | Page Not Found') - } else { - // Render Error Page or Redirect - res.status(500).send(`
500 | Internal Server Error\n${err.stack}
`) - console.error(`error during render : ${url}`) - console.error(err.stack) - } - } - - const cacheable = isCacheable(url) - if (cacheable) { - const hit = microCache.get(url) - if (hit) { - isDev && console.log(`> cache hit!`.green) - return res.end(hit) - } - } - - const context = { - title: 'KawAnime', - url - } - renderer.renderToString(context, (err, html) => { - if (err) { - return handleError(err) - } - res.end(html) - if (cacheable) { - microCache.set(url, html) - } - isDev && console.log(`> whole request: ${Date.now() - s}ms`.green) - }) -} - -app.get('*', !isDev ? render : (req, res) => { - readyPromise.then(() => { - render(req, res) - }) -}) - -/* - ** Electron app - */ const {BrowserWindow, dialog, Menu, Tray} = require('electron') const Electron = require('electron').app const url = require('url') const localConfig = require(path.join(homedir(), '.KawAnime', 'config.json')).config -const menuFile = require(path.join(__dirname, 'assets', 'menu.js')) +const menuFile = require('./resources/menu.js') const menu = Menu.buildFromTemplate(menuFile.menu) +const isDev = process.env.NODE_ENV === 'development' + process.win = null // Current window let tray = null let _APP_URL_ let server const startServer = () => { + const app = process.app + server = http.createServer(app).listen(process.env.PORT) _APP_URL_ = 'http://localhost:' + server.address().port console.log(`> KawAnime is at ${_APP_URL_}`.green) @@ -165,16 +38,12 @@ const pollServer = () => { .on('error', pollServer) } -// Disable error dialogs by overriding -dialog.showErrorBox = (title, content) => { - console.log(`${title}\n${content}`) -} - -process.on('uncaughtException', (err) => { - console.error('Uncaught exception occurred in main process.\n', err) -}) - const newWin = () => { + if (!process.app) { + setTimeout(newWin, 500) + return + } + startServer() process.win = new BrowserWindow({ @@ -225,15 +94,29 @@ const newWin = () => { pollServer() } +// Disable error dialogs by overriding +dialog.showErrorBox = (title, content) => { + console.log(`${title}\n${content}`) +} + +process.on('uncaughtException', (err) => { + console.error('Uncaught exception occurred in main process.\n', err) +}) + Electron.on('ready', () => { const currentSettings = Electron.getLoginItemSettings() Menu.setApplicationMenu(menu) + // Devtools + if (isDev) { + require('vue-devtools').install() + } + if (localConfig.system.toTray) { if (process.platform === 'darwin') { Electron.dock.hide() } - tray = new Tray(path.join(__dirname, 'static', 'images', 'tray.png')) + tray = new Tray('./resources/tray.png') const contextMenu = Menu.buildFromTemplate([ { label: 'New window', @@ -268,8 +151,8 @@ Electron.on('ready', () => { newWin() // Let's send some data to kawanime.com/_api - const {username} = require('os').userInfo() - const tokenPath = path.join(require('os').homedir(), '.KawAnime', '_token') + const {username} = userInfo() + const tokenPath = path.join(homedir(), '.KawAnime', '_token') const token = fs.readFileSync(tokenPath, 'utf-8') axios.post('https://kawanime.com/_api', { id: `${username}/${token}` diff --git a/static/images/index-bg.jpg b/app/main/resources/index-bg.jpg similarity index 100% rename from static/images/index-bg.jpg rename to app/main/resources/index-bg.jpg diff --git a/assets/menu.js b/app/main/resources/menu.js similarity index 100% rename from assets/menu.js rename to app/main/resources/menu.js diff --git a/static/images/tray.png b/app/main/resources/tray.png similarity index 100% rename from static/images/tray.png rename to app/main/resources/tray.png diff --git a/server/config/config.js b/app/main/server/config/config.js similarity index 100% rename from server/config/config.js rename to app/main/server/config/config.js diff --git a/server/config/index.js b/app/main/server/config/index.js similarity index 100% rename from server/config/index.js rename to app/main/server/config/index.js diff --git a/server/config/setupAccount.js b/app/main/server/config/setupAccount.js similarity index 100% rename from server/config/setupAccount.js rename to app/main/server/config/setupAccount.js diff --git a/server/env/env.js b/app/main/server/env/env.js similarity index 100% rename from server/env/env.js rename to app/main/server/env/env.js diff --git a/server/env/index.js b/app/main/server/env/index.js similarity index 100% rename from server/env/index.js rename to app/main/server/env/index.js diff --git a/server/env/isOnline.js b/app/main/server/env/isOnline.js similarity index 100% rename from server/env/isOnline.js rename to app/main/server/env/isOnline.js diff --git a/server/env/releaseNotes.js b/app/main/server/env/releaseNotes.js similarity index 87% rename from server/env/releaseNotes.js rename to app/main/server/env/releaseNotes.js index d96acf8..22b6883 100644 --- a/server/env/releaseNotes.js +++ b/app/main/server/env/releaseNotes.js @@ -3,7 +3,7 @@ const _ = require('lodash') const axios = require('axios') const {dir} = require('../utils') -const _VERSION_ = require(join(__dirname, '..', '..', 'package.json')).version +const _VERSION_ = require(join(__dirname, '..', '..', '..', '..', 'package.json')).version const configPath = join(dir, 'config.json') const config = require(configPath) diff --git a/server/env/updateReleaseVersion.js b/app/main/server/env/updateReleaseVersion.js similarity index 81% rename from server/env/updateReleaseVersion.js rename to app/main/server/env/updateReleaseVersion.js index 1fa4ddb..95611ad 100644 --- a/server/env/updateReleaseVersion.js +++ b/app/main/server/env/updateReleaseVersion.js @@ -2,7 +2,7 @@ const {join} = require('path') const {writeFileSync} = require('fs') const {dir} = require('../utils') -const _VERSION_ = require(join(__dirname, '..', '..', 'package.json')).version +const _VERSION_ = require(join(__dirname, '..', '..', '..', '..', 'package.json')).version const configPath = join(dir, 'config.json') const config = require(configPath) diff --git a/server/env/win.js b/app/main/server/env/win.js similarity index 100% rename from server/env/win.js rename to app/main/server/env/win.js diff --git a/server/generateEnv.js b/app/main/server/generateEnv.js similarity index 100% rename from server/generateEnv.js rename to app/main/server/generateEnv.js diff --git a/server/history/history.js b/app/main/server/history/history.js similarity index 100% rename from server/history/history.js rename to app/main/server/history/history.js diff --git a/server/history/index.js b/app/main/server/history/index.js similarity index 100% rename from server/history/index.js rename to app/main/server/history/index.js diff --git a/server/horrible/horrible.js b/app/main/server/horrible/horrible.js similarity index 100% rename from server/horrible/horrible.js rename to app/main/server/horrible/horrible.js diff --git a/server/horrible/index.js b/app/main/server/horrible/index.js similarity index 100% rename from server/horrible/index.js rename to app/main/server/horrible/index.js diff --git a/server/index.js b/app/main/server/index.js similarity index 100% rename from server/index.js rename to app/main/server/index.js diff --git a/server/local/index.js b/app/main/server/local/index.js similarity index 100% rename from server/local/index.js rename to app/main/server/local/index.js diff --git a/server/local/local.js b/app/main/server/local/local.js similarity index 100% rename from server/local/local.js rename to app/main/server/local/local.js diff --git a/server/mal/index.js b/app/main/server/mal/index.js similarity index 100% rename from server/mal/index.js rename to app/main/server/mal/index.js diff --git a/server/mal/official.js b/app/main/server/mal/official.js similarity index 100% rename from server/mal/official.js rename to app/main/server/mal/official.js diff --git a/server/mal/scrap.js b/app/main/server/mal/scrap.js similarity index 100% rename from server/mal/scrap.js rename to app/main/server/mal/scrap.js diff --git a/server/news/index.js b/app/main/server/news/index.js similarity index 100% rename from server/news/index.js rename to app/main/server/news/index.js diff --git a/server/news/news.js b/app/main/server/news/news.js similarity index 100% rename from server/news/news.js rename to app/main/server/news/news.js diff --git a/server/nyaa/download.js b/app/main/server/nyaa/download.js similarity index 100% rename from server/nyaa/download.js rename to app/main/server/nyaa/download.js diff --git a/server/nyaa/getLatest.js b/app/main/server/nyaa/getLatest.js similarity index 100% rename from server/nyaa/getLatest.js rename to app/main/server/nyaa/getLatest.js diff --git a/server/nyaa/index.js b/app/main/server/nyaa/index.js similarity index 100% rename from server/nyaa/index.js rename to app/main/server/nyaa/index.js diff --git a/server/openExternal/index.js b/app/main/server/openExternal/index.js similarity index 100% rename from server/openExternal/index.js rename to app/main/server/openExternal/index.js diff --git a/server/openExternal/openExternal.js b/app/main/server/openExternal/openExternal.js similarity index 100% rename from server/openExternal/openExternal.js rename to app/main/server/openExternal/openExternal.js diff --git a/server/search/episodes.js b/app/main/server/search/episodes.js similarity index 100% rename from server/search/episodes.js rename to app/main/server/search/episodes.js diff --git a/server/search/index.js b/app/main/server/search/index.js similarity index 100% rename from server/search/index.js rename to app/main/server/search/index.js diff --git a/server/search/search.js b/app/main/server/search/search.js similarity index 100% rename from server/search/search.js rename to app/main/server/search/search.js diff --git a/server/seasons/index.js b/app/main/server/seasons/index.js similarity index 100% rename from server/seasons/index.js rename to app/main/server/seasons/index.js diff --git a/server/seasons/seasons.js b/app/main/server/seasons/seasons.js similarity index 100% rename from server/seasons/seasons.js rename to app/main/server/seasons/seasons.js diff --git a/server/torrent/index.js b/app/main/server/torrent/index.js similarity index 100% rename from server/torrent/index.js rename to app/main/server/torrent/index.js diff --git a/server/torrent/torrent.js b/app/main/server/torrent/torrent.js similarity index 100% rename from server/torrent/torrent.js rename to app/main/server/torrent/torrent.js diff --git a/server/updater/index.js b/app/main/server/updater/index.js similarity index 100% rename from server/updater/index.js rename to app/main/server/updater/index.js diff --git a/server/utils/dir.js b/app/main/server/utils/dir.js similarity index 100% rename from server/utils/dir.js rename to app/main/server/utils/dir.js diff --git a/server/utils/index.js b/app/main/server/utils/index.js similarity index 100% rename from server/utils/index.js rename to app/main/server/utils/index.js diff --git a/server/utils/logger.js b/app/main/server/utils/logger.js similarity index 100% rename from server/utils/logger.js rename to app/main/server/utils/logger.js diff --git a/server/utils/removeUnwanted.js b/app/main/server/utils/removeUnwanted.js similarity index 100% rename from server/utils/removeUnwanted.js rename to app/main/server/utils/removeUnwanted.js diff --git a/server/vault/index.js b/app/main/server/vault/index.js similarity index 100% rename from server/vault/index.js rename to app/main/server/vault/index.js diff --git a/server/video/index.js b/app/main/server/video/index.js similarity index 100% rename from server/video/index.js rename to app/main/server/video/index.js diff --git a/server/video/streaming.js b/app/main/server/video/streaming.js similarity index 100% rename from server/video/streaming.js rename to app/main/server/video/streaming.js diff --git a/server/watchList/index.js b/app/main/server/watchList/index.js similarity index 100% rename from server/watchList/index.js rename to app/main/server/watchList/index.js diff --git a/server/watchList/watchList.js b/app/main/server/watchList/watchList.js similarity index 100% rename from server/watchList/watchList.js rename to app/main/server/watchList/watchList.js diff --git a/assets/App.vue b/app/web/assets/App.vue similarity index 96% rename from assets/App.vue rename to app/web/assets/App.vue index 74cc219..cd63f01 100644 --- a/assets/App.vue +++ b/app/web/assets/App.vue @@ -88,15 +88,6 @@ export default { mixins: [Meta, ReadMagnet, DragDrop], mounted () { this.isBrowser = !window.navigator.appVersion.includes('Electron') - - this.$nextTick(() => { - if (process.env.NODE_ENV === 'development') { - const devtools = document.createElement('script') - devtools.src = 'http://localhost:8098' - - document.body.appendChild(devtools) - } - }) }, data () { return { diff --git a/assets/app.js b/app/web/assets/app.js similarity index 93% rename from assets/app.js rename to app/web/assets/app.js index f0e2ff1..beb5667 100644 --- a/assets/app.js +++ b/app/web/assets/app.js @@ -32,8 +32,6 @@ Object.keys(Components).forEach(key => { Vue.component(key, Components[key]) }) -if (typeof window !== 'undefined' && process.env.NODE_ENV) window.NODE_ENV = process.env.NODE_ENV - // Expose a factory function that creates a fresh set of store, router, // app instances on each call (which is called for each SSR request) export function createApp (ssrContext) { @@ -42,7 +40,7 @@ export function createApp (ssrContext) { const router = createRouter() // App initialization - store.dispatch('init') + if (typeof window !== 'undefined') store.dispatch('init') !['KawAnime-test', 'development'].includes(process.env.NODE_ENV) && store.dispatch('update/check') // sync the router with the vuex store. diff --git a/assets/entry-client.js b/app/web/assets/entry-client.js similarity index 100% rename from assets/entry-client.js rename to app/web/assets/entry-client.js diff --git a/assets/entry-server.js b/app/web/assets/entry-server.js similarity index 100% rename from assets/entry-server.js rename to app/web/assets/entry-server.js diff --git a/assets/iconfont/MaterialIcons-Regular.eot b/app/web/assets/iconfont/MaterialIcons-Regular.eot similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.eot rename to app/web/assets/iconfont/MaterialIcons-Regular.eot diff --git a/assets/iconfont/MaterialIcons-Regular.ijmap b/app/web/assets/iconfont/MaterialIcons-Regular.ijmap similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.ijmap rename to app/web/assets/iconfont/MaterialIcons-Regular.ijmap diff --git a/assets/iconfont/MaterialIcons-Regular.svg b/app/web/assets/iconfont/MaterialIcons-Regular.svg similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.svg rename to app/web/assets/iconfont/MaterialIcons-Regular.svg diff --git a/assets/iconfont/MaterialIcons-Regular.ttf b/app/web/assets/iconfont/MaterialIcons-Regular.ttf similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.ttf rename to app/web/assets/iconfont/MaterialIcons-Regular.ttf diff --git a/assets/iconfont/MaterialIcons-Regular.woff b/app/web/assets/iconfont/MaterialIcons-Regular.woff similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.woff rename to app/web/assets/iconfont/MaterialIcons-Regular.woff diff --git a/assets/iconfont/MaterialIcons-Regular.woff2 b/app/web/assets/iconfont/MaterialIcons-Regular.woff2 similarity index 100% rename from assets/iconfont/MaterialIcons-Regular.woff2 rename to app/web/assets/iconfont/MaterialIcons-Regular.woff2 diff --git a/assets/iconfont/README.md b/app/web/assets/iconfont/README.md similarity index 100% rename from assets/iconfont/README.md rename to app/web/assets/iconfont/README.md diff --git a/assets/iconfont/codepoints b/app/web/assets/iconfont/codepoints similarity index 100% rename from assets/iconfont/codepoints rename to app/web/assets/iconfont/codepoints diff --git a/assets/index.template.html b/app/web/assets/index.template.html similarity index 100% rename from assets/index.template.html rename to app/web/assets/index.template.html diff --git a/assets/stylus/electron.styl b/app/web/assets/stylus/electron.styl similarity index 100% rename from assets/stylus/electron.styl rename to app/web/assets/stylus/electron.styl diff --git a/assets/stylus/functions.styl b/app/web/assets/stylus/functions.styl similarity index 100% rename from assets/stylus/functions.styl rename to app/web/assets/stylus/functions.styl diff --git a/assets/stylus/global.styl b/app/web/assets/stylus/global.styl similarity index 100% rename from assets/stylus/global.styl rename to app/web/assets/stylus/global.styl diff --git a/assets/stylus/main.styl b/app/web/assets/stylus/main.styl similarity index 86% rename from assets/stylus/main.styl rename to app/web/assets/stylus/main.styl index 984a85e..7712932 100644 --- a/assets/stylus/main.styl +++ b/app/web/assets/stylus/main.styl @@ -7,7 +7,7 @@ @import './material-icons' // Vuetify -@import '../../node_modules/vuetify/src/stylus/app' +@import '../../../../node_modules/vuetify/src/stylus/app' // Custom @import './electron' diff --git a/assets/stylus/material-icons.styl b/app/web/assets/stylus/material-icons.styl similarity index 100% rename from assets/stylus/material-icons.styl rename to app/web/assets/stylus/material-icons.styl diff --git a/assets/stylus/scrollbar.styl b/app/web/assets/stylus/scrollbar.styl similarity index 100% rename from assets/stylus/scrollbar.styl rename to app/web/assets/stylus/scrollbar.styl diff --git a/assets/stylus/theme.js b/app/web/assets/stylus/theme.js similarity index 100% rename from assets/stylus/theme.js rename to app/web/assets/stylus/theme.js diff --git a/assets/stylus/transitions.styl b/app/web/assets/stylus/transitions.styl similarity index 100% rename from assets/stylus/transitions.styl rename to app/web/assets/stylus/transitions.styl diff --git a/assets/subtitle-parser/ass/index.js b/app/web/assets/subtitle-parser/ass/index.js similarity index 100% rename from assets/subtitle-parser/ass/index.js rename to app/web/assets/subtitle-parser/ass/index.js diff --git a/assets/subtitle-parser/ass/styles.js b/app/web/assets/subtitle-parser/ass/styles.js similarity index 100% rename from assets/subtitle-parser/ass/styles.js rename to app/web/assets/subtitle-parser/ass/styles.js diff --git a/assets/subtitle-parser/ass/subtitles.js b/app/web/assets/subtitle-parser/ass/subtitles.js similarity index 100% rename from assets/subtitle-parser/ass/subtitles.js rename to app/web/assets/subtitle-parser/ass/subtitles.js diff --git a/assets/subtitle-parser/ass/tags.js b/app/web/assets/subtitle-parser/ass/tags.js similarity index 100% rename from assets/subtitle-parser/ass/tags.js rename to app/web/assets/subtitle-parser/ass/tags.js diff --git a/assets/subtitle-parser/ass/tracks.js b/app/web/assets/subtitle-parser/ass/tracks.js similarity index 100% rename from assets/subtitle-parser/ass/tracks.js rename to app/web/assets/subtitle-parser/ass/tracks.js diff --git a/assets/subtitle-parser/ass/utils.js b/app/web/assets/subtitle-parser/ass/utils.js similarity index 100% rename from assets/subtitle-parser/ass/utils.js rename to app/web/assets/subtitle-parser/ass/utils.js diff --git a/assets/subtitle-parser/index.js b/app/web/assets/subtitle-parser/index.js similarity index 100% rename from assets/subtitle-parser/index.js rename to app/web/assets/subtitle-parser/index.js diff --git a/assets/vuetify.js b/app/web/assets/vuetify.js similarity index 100% rename from assets/vuetify.js rename to app/web/assets/vuetify.js diff --git a/components/_index.js b/app/web/components/_index.js similarity index 100% rename from components/_index.js rename to app/web/components/_index.js diff --git a/components/choiceWindow.vue b/app/web/components/choiceWindow.vue similarity index 100% rename from components/choiceWindow.vue rename to app/web/components/choiceWindow.vue diff --git a/components/env.vue b/app/web/components/env.vue similarity index 100% rename from components/env.vue rename to app/web/components/env.vue diff --git a/components/historyModal.vue b/app/web/components/historyModal.vue similarity index 100% rename from components/historyModal.vue rename to app/web/components/historyModal.vue diff --git a/components/infoModal.vue b/app/web/components/infoModal.vue similarity index 100% rename from components/infoModal.vue rename to app/web/components/infoModal.vue diff --git a/components/infoResults.vue b/app/web/components/infoResults.vue similarity index 100% rename from components/infoResults.vue rename to app/web/components/infoResults.vue diff --git a/components/kFooter.vue b/app/web/components/kFooter.vue similarity index 100% rename from components/kFooter.vue rename to app/web/components/kFooter.vue diff --git a/components/listEntry.vue b/app/web/components/listEntry.vue similarity index 100% rename from components/listEntry.vue rename to app/web/components/listEntry.vue diff --git a/components/loader.vue b/app/web/components/loader.vue similarity index 100% rename from components/loader.vue rename to app/web/components/loader.vue diff --git a/components/logs.vue b/app/web/components/logs.vue similarity index 100% rename from components/logs.vue rename to app/web/components/logs.vue diff --git a/components/magnetsModal.vue b/app/web/components/magnetsModal.vue similarity index 100% rename from components/magnetsModal.vue rename to app/web/components/magnetsModal.vue diff --git a/components/malForm.vue b/app/web/components/malForm.vue similarity index 100% rename from components/malForm.vue rename to app/web/components/malForm.vue diff --git a/components/news.vue b/app/web/components/news.vue similarity index 100% rename from components/news.vue rename to app/web/components/news.vue diff --git a/components/overlay.vue b/app/web/components/overlay.vue similarity index 100% rename from components/overlay.vue rename to app/web/components/overlay.vue diff --git a/components/playerSlider.vue b/app/web/components/playerSlider.vue similarity index 100% rename from components/playerSlider.vue rename to app/web/components/playerSlider.vue diff --git a/components/settings.vue b/app/web/components/settings.vue similarity index 100% rename from components/settings.vue rename to app/web/components/settings.vue diff --git a/components/videoModal.vue b/app/web/components/videoModal.vue similarity index 100% rename from components/videoModal.vue rename to app/web/components/videoModal.vue diff --git a/components/videoPlayer.vue b/app/web/components/videoPlayer.vue similarity index 100% rename from components/videoPlayer.vue rename to app/web/components/videoPlayer.vue diff --git a/app/web/index.js b/app/web/index.js new file mode 100644 index 0000000..005edaf --- /dev/null +++ b/app/web/index.js @@ -0,0 +1,132 @@ +require('colors') +const fs = require('fs') +const path = require('path') +const LRU = require('lru-cache') +const express = require('express') +const compression = require('compression') +const resolve = file => path.resolve(__dirname, file) +const { createBundleRenderer } = require('vue-server-renderer') +const redirects = require(path.join(__dirname, '/router/301.json')) + +const isDev = process.env.NODE_ENV === 'development' +const useMicroCache = process.env.MICRO_CACHE !== 'false' +const serverInfo = + `express/${require('express/package.json').version} ` + + `vue-server-renderer/${require('vue-server-renderer/package.json').version}` + +const template = fs.readFileSync(path.join(__dirname, 'assets', 'index.template.html'), 'utf-8') + +function createRenderer (bundle, options) { + // https://github.com/vuejs/vue/blob/dev/packages/vue-server-renderer/README.md#why-use-bundlerenderer + return createBundleRenderer(bundle, Object.assign(options, { + template, + // for component caching + cache: LRU({ + max: 1000, + maxAge: 1000 * 60 * 15 + }), + // this is only needed when vue-server-renderer is npm-linked + basedir: resolve(__dirname, '..', '..', 'public'), + // performance + runInNewContext: false + })) +} + +let renderer +let readyPromise + +process.app = express() + +if (!isDev) { + const bundle = require(path.join(__dirname, '..', '..', 'public', 'vue-ssr-server-bundle.json')) + const clientManifest = require(path.join(__dirname, '..', '..', 'public', 'vue-ssr-client-manifest.json')) + renderer = createRenderer(bundle, { + clientManifest + }) +} else { + // hot reload + readyPromise = require(path.join(__dirname, '..', '..', 'webpack', 'setup-dev-server.js'))(process.app, (bundle, options) => { + renderer = createRenderer(bundle, options) + }) +} + +const serve = (path, cache) => express.static(resolve(path), { + maxAge: cache && !isDev ? 60 * 60 * 24 * 30 : 0 +}) + +process.app.use(compression({ + threshold: 0, + filter (req, res) { + return res.getHeader('Content-Type') === 'text/event-stream' + ? false + : compression.filter(req, res) + } +})) +process.app.use('/static', serve(path.join(__dirname, 'static'), true)) +process.app.use('/public', serve(path.join(__dirname, 'public'), true)) + +// Setup the api +// TODO: Move this call to main/index.js would be great +require(path.join(__dirname, '..', 'main', 'server'))(process.app) + +// 301 redirect for changed routes +Object.keys(redirects).forEach((k) => { + process.app.get(k, (req, res) => res.redirect(301, redirects[k])) +}) + +// 1-second microcache. +// https://www.nginx.com/blog/benefits-of-microcaching-nginx/ +const microCache = LRU({ + max: 100, + maxAge: 1000 +}) + +const isCacheable = req => useMicroCache + +function render ({ url }, res) { + const s = Date.now() + + res.setHeader('Content-Type', 'text/html') + res.setHeader('Server', serverInfo) + + const handleError = (err) => { + if (err && err.code === 404) { + res.status(404).send('404 | Page Not Found') + } else { + // Render Error Page or Redirect + res.status(500).send(`
500 | Internal Server Error\n${err.stack}
`) + console.error(`error during render : ${url}`) + console.error(err.stack) + } + } + + const cacheable = isCacheable(url) + if (cacheable) { + const hit = microCache.get(url) + if (hit) { + isDev && console.log('> cache hit!') + return res.end(hit) + } + } + + const context = { + title: 'KawAnime', + url + } + renderer.renderToString(context, (err, html) => { + if (err) { + return handleError(err) + } + res.end(html) + if (cacheable) { + microCache.set(url, html) + } + isDev && console.log(`> whole request: ${Date.now() - s}ms`) + }) +} + +process.app.get('*', !isDev ? render : (req, res) => { + readyPromise.then(() => { + render(req, res) + }) +}) diff --git a/mixins/global/dragDrop.js b/app/web/mixins/global/dragDrop.js similarity index 100% rename from mixins/global/dragDrop.js rename to app/web/mixins/global/dragDrop.js diff --git a/mixins/global/meta.js b/app/web/mixins/global/meta.js similarity index 100% rename from mixins/global/meta.js rename to app/web/mixins/global/meta.js diff --git a/mixins/global/readMagnet.js b/app/web/mixins/global/readMagnet.js similarity index 100% rename from mixins/global/readMagnet.js rename to app/web/mixins/global/readMagnet.js diff --git a/mixins/subtitles/checkOverlap.js b/app/web/mixins/subtitles/checkOverlap.js similarity index 100% rename from mixins/subtitles/checkOverlap.js rename to app/web/mixins/subtitles/checkOverlap.js diff --git a/mixins/subtitles/getStyle.js b/app/web/mixins/subtitles/getStyle.js similarity index 100% rename from mixins/subtitles/getStyle.js rename to app/web/mixins/subtitles/getStyle.js diff --git a/mixins/subtitles/index.js b/app/web/mixins/subtitles/index.js similarity index 100% rename from mixins/subtitles/index.js rename to app/web/mixins/subtitles/index.js diff --git a/mixins/subtitles/timing.js b/app/web/mixins/subtitles/timing.js similarity index 100% rename from mixins/subtitles/timing.js rename to app/web/mixins/subtitles/timing.js diff --git a/pages/downloader.vue b/app/web/pages/downloader.vue similarity index 100% rename from pages/downloader.vue rename to app/web/pages/downloader.vue diff --git a/pages/localPage.vue b/app/web/pages/localPage.vue similarity index 100% rename from pages/localPage.vue rename to app/web/pages/localPage.vue diff --git a/pages/malPage.vue b/app/web/pages/malPage.vue similarity index 100% rename from pages/malPage.vue rename to app/web/pages/malPage.vue diff --git a/pages/news.vue b/app/web/pages/news.vue similarity index 100% rename from pages/news.vue rename to app/web/pages/news.vue diff --git a/pages/releases.vue b/app/web/pages/releases.vue similarity index 100% rename from pages/releases.vue rename to app/web/pages/releases.vue diff --git a/pages/seasons.vue b/app/web/pages/seasons.vue similarity index 100% rename from pages/seasons.vue rename to app/web/pages/seasons.vue diff --git a/pages/streaming.vue b/app/web/pages/streaming.vue similarity index 100% rename from pages/streaming.vue rename to app/web/pages/streaming.vue diff --git a/pages/torrenting.vue b/app/web/pages/torrenting.vue similarity index 100% rename from pages/torrenting.vue rename to app/web/pages/torrenting.vue diff --git a/pages/watchList.vue b/app/web/pages/watchList.vue similarity index 100% rename from pages/watchList.vue rename to app/web/pages/watchList.vue diff --git a/router/301.json b/app/web/router/301.json similarity index 100% rename from router/301.json rename to app/web/router/301.json diff --git a/router/index.js b/app/web/router/index.js similarity index 100% rename from router/index.js rename to app/web/router/index.js diff --git a/router/meta.js b/app/web/router/meta.js similarity index 100% rename from router/meta.js rename to app/web/router/meta.js diff --git a/static/favicon.ico b/app/web/static/favicon.ico similarity index 100% rename from static/favicon.ico rename to app/web/static/favicon.ico diff --git a/static/images/downloader-back.jpg b/app/web/static/images/downloader-back.jpg similarity index 100% rename from static/images/downloader-back.jpg rename to app/web/static/images/downloader-back.jpg diff --git a/static/images/downloader-char-left.png b/app/web/static/images/downloader-char-left.png similarity index 100% rename from static/images/downloader-char-left.png rename to app/web/static/images/downloader-char-left.png diff --git a/static/images/downloader-char-right.png b/app/web/static/images/downloader-char-right.png similarity index 100% rename from static/images/downloader-char-right.png rename to app/web/static/images/downloader-char-right.png diff --git a/static/images/empty-bg.png b/app/web/static/images/empty-bg.png similarity index 100% rename from static/images/empty-bg.png rename to app/web/static/images/empty-bg.png diff --git a/static/images/error.jpg b/app/web/static/images/error.jpg similarity index 100% rename from static/images/error.jpg rename to app/web/static/images/error.jpg diff --git a/static/images/fb-icon.png b/app/web/static/images/fb-icon.png similarity index 100% rename from static/images/fb-icon.png rename to app/web/static/images/fb-icon.png diff --git a/static/images/github-icon.png b/app/web/static/images/github-icon.png similarity index 100% rename from static/images/github-icon.png rename to app/web/static/images/github-icon.png diff --git a/static/images/icon2.png b/app/web/static/images/icon2.png similarity index 100% rename from static/images/icon2.png rename to app/web/static/images/icon2.png diff --git a/static/images/leftBackground-1.png b/app/web/static/images/leftBackground-1.png similarity index 100% rename from static/images/leftBackground-1.png rename to app/web/static/images/leftBackground-1.png diff --git a/static/images/leftBackground-2-Original.png b/app/web/static/images/leftBackground-2-Original.png similarity index 100% rename from static/images/leftBackground-2-Original.png rename to app/web/static/images/leftBackground-2-Original.png diff --git a/static/images/leftBackground.png b/app/web/static/images/leftBackground.png similarity index 100% rename from static/images/leftBackground.png rename to app/web/static/images/leftBackground.png diff --git a/static/images/loading-gif1.gif b/app/web/static/images/loading-gif1.gif similarity index 100% rename from static/images/loading-gif1.gif rename to app/web/static/images/loading-gif1.gif diff --git a/static/images/loading-gif2.gif b/app/web/static/images/loading-gif2.gif similarity index 100% rename from static/images/loading-gif2.gif rename to app/web/static/images/loading-gif2.gif diff --git a/static/images/mail-icon.png b/app/web/static/images/mail-icon.png similarity index 100% rename from static/images/mail-icon.png rename to app/web/static/images/mail-icon.png diff --git a/static/images/mal.png b/app/web/static/images/mal.png similarity index 100% rename from static/images/mal.png rename to app/web/static/images/mal.png diff --git a/static/images/overlay.jpg b/app/web/static/images/overlay.jpg similarity index 100% rename from static/images/overlay.jpg rename to app/web/static/images/overlay.jpg diff --git a/static/images/sidebar-background.png b/app/web/static/images/sidebar-background.png similarity index 100% rename from static/images/sidebar-background.png rename to app/web/static/images/sidebar-background.png diff --git a/static/images/twitter-icon.png b/app/web/static/images/twitter-icon.png similarity index 100% rename from static/images/twitter-icon.png rename to app/web/static/images/twitter-icon.png diff --git a/static/sounds/Cute Baka.mp3 b/app/web/static/sounds/Cute Baka.mp3 similarity index 100% rename from static/sounds/Cute Baka.mp3 rename to app/web/static/sounds/Cute Baka.mp3 diff --git a/static/sounds/Nico Nico Nii.mp3 b/app/web/static/sounds/Nico Nico Nii.mp3 similarity index 100% rename from static/sounds/Nico Nico Nii.mp3 rename to app/web/static/sounds/Nico Nico Nii.mp3 diff --git a/static/sounds/Nyanpasu.mp3 b/app/web/static/sounds/Nyanpasu.mp3 similarity index 100% rename from static/sounds/Nyanpasu.mp3 rename to app/web/static/sounds/Nyanpasu.mp3 diff --git a/static/sounds/Poi.mp3 b/app/web/static/sounds/Poi.mp3 similarity index 100% rename from static/sounds/Poi.mp3 rename to app/web/static/sounds/Poi.mp3 diff --git a/store/actions.js b/app/web/store/actions.js similarity index 100% rename from store/actions.js rename to app/web/store/actions.js diff --git a/store/getters.js b/app/web/store/getters.js similarity index 100% rename from store/getters.js rename to app/web/store/getters.js diff --git a/store/index.js b/app/web/store/index.js similarity index 100% rename from store/index.js rename to app/web/store/index.js diff --git a/store/modules/config/actions.js b/app/web/store/modules/config/actions.js similarity index 100% rename from store/modules/config/actions.js rename to app/web/store/modules/config/actions.js diff --git a/store/modules/config/getters.js b/app/web/store/modules/config/getters.js similarity index 100% rename from store/modules/config/getters.js rename to app/web/store/modules/config/getters.js diff --git a/store/modules/config/index.js b/app/web/store/modules/config/index.js similarity index 100% rename from store/modules/config/index.js rename to app/web/store/modules/config/index.js diff --git a/store/modules/config/mutations.js b/app/web/store/modules/config/mutations.js similarity index 100% rename from store/modules/config/mutations.js rename to app/web/store/modules/config/mutations.js diff --git a/store/modules/config/state.js b/app/web/store/modules/config/state.js similarity index 100% rename from store/modules/config/state.js rename to app/web/store/modules/config/state.js diff --git a/store/modules/downloader/actions.js b/app/web/store/modules/downloader/actions.js similarity index 100% rename from store/modules/downloader/actions.js rename to app/web/store/modules/downloader/actions.js diff --git a/store/modules/downloader/getters.js b/app/web/store/modules/downloader/getters.js similarity index 100% rename from store/modules/downloader/getters.js rename to app/web/store/modules/downloader/getters.js diff --git a/store/modules/downloader/index.js b/app/web/store/modules/downloader/index.js similarity index 100% rename from store/modules/downloader/index.js rename to app/web/store/modules/downloader/index.js diff --git a/store/modules/downloader/mutations.js b/app/web/store/modules/downloader/mutations.js similarity index 100% rename from store/modules/downloader/mutations.js rename to app/web/store/modules/downloader/mutations.js diff --git a/store/modules/downloader/state.js b/app/web/store/modules/downloader/state.js similarity index 100% rename from store/modules/downloader/state.js rename to app/web/store/modules/downloader/state.js diff --git a/store/modules/history/actions.js b/app/web/store/modules/history/actions.js similarity index 100% rename from store/modules/history/actions.js rename to app/web/store/modules/history/actions.js diff --git a/store/modules/history/getters.js b/app/web/store/modules/history/getters.js similarity index 100% rename from store/modules/history/getters.js rename to app/web/store/modules/history/getters.js diff --git a/store/modules/history/index.js b/app/web/store/modules/history/index.js similarity index 100% rename from store/modules/history/index.js rename to app/web/store/modules/history/index.js diff --git a/store/modules/history/mutations.js b/app/web/store/modules/history/mutations.js similarity index 100% rename from store/modules/history/mutations.js rename to app/web/store/modules/history/mutations.js diff --git a/store/modules/history/state.js b/app/web/store/modules/history/state.js similarity index 100% rename from store/modules/history/state.js rename to app/web/store/modules/history/state.js diff --git a/store/modules/index.js b/app/web/store/modules/index.js similarity index 100% rename from store/modules/index.js rename to app/web/store/modules/index.js diff --git a/store/modules/lists.js b/app/web/store/modules/lists.js similarity index 100% rename from store/modules/lists.js rename to app/web/store/modules/lists.js diff --git a/store/modules/localFiles/actions.js b/app/web/store/modules/localFiles/actions.js similarity index 100% rename from store/modules/localFiles/actions.js rename to app/web/store/modules/localFiles/actions.js diff --git a/store/modules/localFiles/getters.js b/app/web/store/modules/localFiles/getters.js similarity index 100% rename from store/modules/localFiles/getters.js rename to app/web/store/modules/localFiles/getters.js diff --git a/store/modules/localFiles/index.js b/app/web/store/modules/localFiles/index.js similarity index 100% rename from store/modules/localFiles/index.js rename to app/web/store/modules/localFiles/index.js diff --git a/store/modules/localFiles/mutations.js b/app/web/store/modules/localFiles/mutations.js similarity index 100% rename from store/modules/localFiles/mutations.js rename to app/web/store/modules/localFiles/mutations.js diff --git a/store/modules/localFiles/state.js b/app/web/store/modules/localFiles/state.js similarity index 100% rename from store/modules/localFiles/state.js rename to app/web/store/modules/localFiles/state.js diff --git a/store/modules/logs/actions.js b/app/web/store/modules/logs/actions.js similarity index 100% rename from store/modules/logs/actions.js rename to app/web/store/modules/logs/actions.js diff --git a/store/modules/logs/getters.js b/app/web/store/modules/logs/getters.js similarity index 100% rename from store/modules/logs/getters.js rename to app/web/store/modules/logs/getters.js diff --git a/store/modules/logs/index.js b/app/web/store/modules/logs/index.js similarity index 100% rename from store/modules/logs/index.js rename to app/web/store/modules/logs/index.js diff --git a/store/modules/logs/mutations.js b/app/web/store/modules/logs/mutations.js similarity index 100% rename from store/modules/logs/mutations.js rename to app/web/store/modules/logs/mutations.js diff --git a/store/modules/logs/state.js b/app/web/store/modules/logs/state.js similarity index 100% rename from store/modules/logs/state.js rename to app/web/store/modules/logs/state.js diff --git a/store/modules/mal/actions.js b/app/web/store/modules/mal/actions.js similarity index 100% rename from store/modules/mal/actions.js rename to app/web/store/modules/mal/actions.js diff --git a/store/modules/mal/getters.js b/app/web/store/modules/mal/getters.js similarity index 100% rename from store/modules/mal/getters.js rename to app/web/store/modules/mal/getters.js diff --git a/store/modules/mal/index.js b/app/web/store/modules/mal/index.js similarity index 100% rename from store/modules/mal/index.js rename to app/web/store/modules/mal/index.js diff --git a/store/modules/mal/mutations.js b/app/web/store/modules/mal/mutations.js similarity index 100% rename from store/modules/mal/mutations.js rename to app/web/store/modules/mal/mutations.js diff --git a/store/modules/mal/state.js b/app/web/store/modules/mal/state.js similarity index 100% rename from store/modules/mal/state.js rename to app/web/store/modules/mal/state.js diff --git a/store/modules/news/actions.js b/app/web/store/modules/news/actions.js similarity index 100% rename from store/modules/news/actions.js rename to app/web/store/modules/news/actions.js diff --git a/store/modules/news/getters.js b/app/web/store/modules/news/getters.js similarity index 100% rename from store/modules/news/getters.js rename to app/web/store/modules/news/getters.js diff --git a/store/modules/news/index.js b/app/web/store/modules/news/index.js similarity index 100% rename from store/modules/news/index.js rename to app/web/store/modules/news/index.js diff --git a/store/modules/news/mutations.js b/app/web/store/modules/news/mutations.js similarity index 100% rename from store/modules/news/mutations.js rename to app/web/store/modules/news/mutations.js diff --git a/store/modules/news/state.js b/app/web/store/modules/news/state.js similarity index 100% rename from store/modules/news/state.js rename to app/web/store/modules/news/state.js diff --git a/store/modules/overlay/index.js b/app/web/store/modules/overlay/index.js similarity index 100% rename from store/modules/overlay/index.js rename to app/web/store/modules/overlay/index.js diff --git a/store/modules/overlay/mutations.js b/app/web/store/modules/overlay/mutations.js similarity index 100% rename from store/modules/overlay/mutations.js rename to app/web/store/modules/overlay/mutations.js diff --git a/store/modules/overlay/state.js b/app/web/store/modules/overlay/state.js similarity index 100% rename from store/modules/overlay/state.js rename to app/web/store/modules/overlay/state.js diff --git a/store/modules/player/actions.js b/app/web/store/modules/player/actions.js similarity index 100% rename from store/modules/player/actions.js rename to app/web/store/modules/player/actions.js diff --git a/store/modules/player/index.js b/app/web/store/modules/player/index.js similarity index 100% rename from store/modules/player/index.js rename to app/web/store/modules/player/index.js diff --git a/store/modules/releases/actions.js b/app/web/store/modules/releases/actions.js similarity index 100% rename from store/modules/releases/actions.js rename to app/web/store/modules/releases/actions.js diff --git a/store/modules/releases/getters.js b/app/web/store/modules/releases/getters.js similarity index 100% rename from store/modules/releases/getters.js rename to app/web/store/modules/releases/getters.js diff --git a/store/modules/releases/index.js b/app/web/store/modules/releases/index.js similarity index 100% rename from store/modules/releases/index.js rename to app/web/store/modules/releases/index.js diff --git a/store/modules/releases/mutations.js b/app/web/store/modules/releases/mutations.js similarity index 100% rename from store/modules/releases/mutations.js rename to app/web/store/modules/releases/mutations.js diff --git a/store/modules/releases/state.js b/app/web/store/modules/releases/state.js similarity index 100% rename from store/modules/releases/state.js rename to app/web/store/modules/releases/state.js diff --git a/store/modules/search/actions.js b/app/web/store/modules/search/actions.js similarity index 100% rename from store/modules/search/actions.js rename to app/web/store/modules/search/actions.js diff --git a/store/modules/search/getters.js b/app/web/store/modules/search/getters.js similarity index 100% rename from store/modules/search/getters.js rename to app/web/store/modules/search/getters.js diff --git a/store/modules/search/index.js b/app/web/store/modules/search/index.js similarity index 100% rename from store/modules/search/index.js rename to app/web/store/modules/search/index.js diff --git a/store/modules/search/mutations.js b/app/web/store/modules/search/mutations.js similarity index 100% rename from store/modules/search/mutations.js rename to app/web/store/modules/search/mutations.js diff --git a/store/modules/search/state.js b/app/web/store/modules/search/state.js similarity index 100% rename from store/modules/search/state.js rename to app/web/store/modules/search/state.js diff --git a/store/modules/seasons/actions.js b/app/web/store/modules/seasons/actions.js similarity index 100% rename from store/modules/seasons/actions.js rename to app/web/store/modules/seasons/actions.js diff --git a/store/modules/seasons/getters.js b/app/web/store/modules/seasons/getters.js similarity index 100% rename from store/modules/seasons/getters.js rename to app/web/store/modules/seasons/getters.js diff --git a/store/modules/seasons/index.js b/app/web/store/modules/seasons/index.js similarity index 100% rename from store/modules/seasons/index.js rename to app/web/store/modules/seasons/index.js diff --git a/store/modules/seasons/mutations.js b/app/web/store/modules/seasons/mutations.js similarity index 100% rename from store/modules/seasons/mutations.js rename to app/web/store/modules/seasons/mutations.js diff --git a/store/modules/seasons/state.js b/app/web/store/modules/seasons/state.js similarity index 100% rename from store/modules/seasons/state.js rename to app/web/store/modules/seasons/state.js diff --git a/store/modules/streaming/actions.js b/app/web/store/modules/streaming/actions.js similarity index 100% rename from store/modules/streaming/actions.js rename to app/web/store/modules/streaming/actions.js diff --git a/store/modules/streaming/getters.js b/app/web/store/modules/streaming/getters.js similarity index 100% rename from store/modules/streaming/getters.js rename to app/web/store/modules/streaming/getters.js diff --git a/store/modules/streaming/index.js b/app/web/store/modules/streaming/index.js similarity index 100% rename from store/modules/streaming/index.js rename to app/web/store/modules/streaming/index.js diff --git a/store/modules/streaming/mutations.js b/app/web/store/modules/streaming/mutations.js similarity index 100% rename from store/modules/streaming/mutations.js rename to app/web/store/modules/streaming/mutations.js diff --git a/store/modules/streaming/state.js b/app/web/store/modules/streaming/state.js similarity index 100% rename from store/modules/streaming/state.js rename to app/web/store/modules/streaming/state.js diff --git a/store/modules/update/actions.js b/app/web/store/modules/update/actions.js similarity index 100% rename from store/modules/update/actions.js rename to app/web/store/modules/update/actions.js diff --git a/store/modules/update/getters.js b/app/web/store/modules/update/getters.js similarity index 100% rename from store/modules/update/getters.js rename to app/web/store/modules/update/getters.js diff --git a/store/modules/update/index.js b/app/web/store/modules/update/index.js similarity index 100% rename from store/modules/update/index.js rename to app/web/store/modules/update/index.js diff --git a/store/modules/update/mutations.js b/app/web/store/modules/update/mutations.js similarity index 100% rename from store/modules/update/mutations.js rename to app/web/store/modules/update/mutations.js diff --git a/store/modules/update/state.js b/app/web/store/modules/update/state.js similarity index 100% rename from store/modules/update/state.js rename to app/web/store/modules/update/state.js diff --git a/store/modules/watchLists/actions.js b/app/web/store/modules/watchLists/actions.js similarity index 100% rename from store/modules/watchLists/actions.js rename to app/web/store/modules/watchLists/actions.js diff --git a/store/modules/watchLists/getters.js b/app/web/store/modules/watchLists/getters.js similarity index 100% rename from store/modules/watchLists/getters.js rename to app/web/store/modules/watchLists/getters.js diff --git a/store/modules/watchLists/index.js b/app/web/store/modules/watchLists/index.js similarity index 100% rename from store/modules/watchLists/index.js rename to app/web/store/modules/watchLists/index.js diff --git a/store/modules/watchLists/mutations.js b/app/web/store/modules/watchLists/mutations.js similarity index 100% rename from store/modules/watchLists/mutations.js rename to app/web/store/modules/watchLists/mutations.js diff --git a/store/modules/watchLists/state.js b/app/web/store/modules/watchLists/state.js similarity index 100% rename from store/modules/watchLists/state.js rename to app/web/store/modules/watchLists/state.js diff --git a/store/mutations.js b/app/web/store/mutations.js similarity index 100% rename from store/mutations.js rename to app/web/store/mutations.js diff --git a/store/state.js b/app/web/store/state.js similarity index 100% rename from store/state.js rename to app/web/store/state.js diff --git a/store/utils.js b/app/web/store/utils.js similarity index 100% rename from store/utils.js rename to app/web/store/utils.js diff --git a/assets/improvements.todo b/assets/improvements.todo deleted file mode 100644 index cef6751..0000000 --- a/assets/improvements.todo +++ /dev/null @@ -1,14 +0,0 @@ -✔ Finish info modal design @done (8/16/2017, 6:48:22 PM) -✔ Implement auto-update on start and every hour @done (9/3/2017, 4:02:49 PM) -✔ Separate Store modules @done (2017-9-20 11:20:12) -✔ Use Pug for all templates @done (8/14/2017, 6:58:43 PM) -✔ Implement sound on notification @done (8/14/2017, 10:28:04 PM) -✔ Open in browser not working on Linux and Windows @done (9/4/2017, 11:37:15 PM) -✔ Responsive (large screen) season page @done (9/4/2017, 11:43:47 PM) -✔ Message on empty history @done (9/4/2017, 11:49:25 PM) -✔ Can't minimize when maximized on windows and Linux @done (9/4/2017, 11:53:52 PM) -✔ Inside news open several times @done (9/6/2017, 10:30:00 PM) -✘ Fallback folder if default local folder was deleted @cancelled (2018-5-20 19:35:38) -✔ Downloader broken with Erai-raws. Some improvements are needed with this sub @done (2018-5-20 19:35:19) -✔ Don't show the downloader modal if there is no magnet to show @done (2017-9-25 10:53:14) -✔ Save the release entries to put it back if an error occurs on refresh (#27) @done (2018-5-20 19:35:16) diff --git a/package.json b/package.json index f89c09b..909513a 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "KawAnime", "description": "Desktop app for anime fans", "version": "0.3.1", - "main": "main.js", + "main": "app/index.js", "repository": "https://github.com/Kylart/KawAnime.git", "author": { "name": "Kylart", @@ -10,24 +10,24 @@ }, "license": "MIT", "scripts": { - "dev": "cross-env NODE_ENV=development electron main.js", - "start": "cross-env NODE_ENV=production electron main.js", + "dev": "cross-env NODE_ENV=development electron app", + "start": "cross-env NODE_ENV=production electron app", "bstart": "npm run build && npm start", "build": "rimraf public && npm run build:client && npm run build:server", "build:client": "cross-env NODE_ENV=production webpack --config webpack/webpack.client.config.js --hide-modules", "build:server": "cross-env NODE_ENV=production webpack --config webpack/webpack.server.config.js --hide-modules", "cloc": "cloc $(git ls-files | grep -vE \".mkv|mp4|m4a|mp3|lock\")", "test:server": "nyc ava --verbose --serial test/server.test.js", - "test:front": "npm run build && cross-env NODE_ENV=KawAnime-test nightwatch", + "test:front": "npm run build && cross-env NODE_ENV=KawAnime-test nightwatch -c test/nightwatch.config.js", "test": "npm run lint && npm run test:front && npm run test:server", "coverage": "nyc report --reporter=text-lcov > coverage.lcov && codecov", - "lint": "eslint --fix --ext .js,.vue pages", + "lint": "eslint --fix --ext .js,.vue app", "pack": "build --dir", "dist:linux": "build --linux deb AppImage", "dist:win": "build --win --x64 --ia32", "dist:mac": "build --mac", "dist:all": "npm run build && npm run dist:mac && npm run dist:win && npm run dist:linux", - "postinstall": "node nightwatch.conf.js" + "postinstall": "node test/nightwatch.config.js" }, "dependencies": { "axios": "^0.18.0", @@ -116,6 +116,7 @@ "stylus-loader": "^3.0.2", "sw-precache-webpack-plugin": "^0.11.4", "url-loader": "^1.0.1", + "vue-devtools": "^4.1.4", "vue-loader": "^14.2.3", "vue-style-loader": "^4.1.0", "vue-template-compiler": "^2.5.13", diff --git a/nightwatch.conf.js b/test/nightwatch.config.js similarity index 100% rename from nightwatch.conf.js rename to test/nightwatch.config.js diff --git a/webpack/setup-dev-server.js b/webpack/setup-dev-server.js index 480c8dd..30e82d5 100644 --- a/webpack/setup-dev-server.js +++ b/webpack/setup-dev-server.js @@ -1,8 +1,8 @@ const path = require('path') const webpack = require('webpack') const MFS = require('memory-fs') -const clientConfig = require(path.join(__dirname, 'webpack.client.config')) -const serverConfig = require(path.join(__dirname, 'webpack.server.config')) +const clientConfig = require('./webpack.client.config') +const serverConfig = require('./webpack.server.config') const ProgressBarPlugin = require('progress-bar-webpack-plugin') const chalk = require('chalk') @@ -49,7 +49,7 @@ module.exports = function setupDevServer (app, cb) { // hot middleware app.use(require('webpack-hot-middleware')(clientCompiler)) - // watch and update server renderer + // watch and update server web const serverCompiler = webpack(serverConfig) const mfs = new MFS() serverCompiler.outputFileSystem = mfs diff --git a/webpack/webpack.base.config.js b/webpack/webpack.base.config.js index 61b9add..9fbecac 100644 --- a/webpack/webpack.base.config.js +++ b/webpack/webpack.base.config.js @@ -7,7 +7,7 @@ const ProgressBarPlugin = require('progress-bar-webpack-plugin') const OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin') const isDev = process.env.NODE_ENV === 'development' -const resolve = (file) => path.resolve(__dirname, '..', file) +const resolve = (file) => path.resolve(__dirname, '..', 'app', 'web', file) module.exports = { devtool: !isDev diff --git a/webpack/webpack.client.config.js b/webpack/webpack.client.config.js index 0d35e05..5bce098 100644 --- a/webpack/webpack.client.config.js +++ b/webpack/webpack.client.config.js @@ -5,7 +5,7 @@ const VueSSRClientPlugin = require('vue-server-renderer/client-plugin') const config = merge(base, { entry: { - app: './assets/entry-client.js' + app: './app/web/assets/entry-client.js' }, optimization: { splitChunks: { diff --git a/webpack/webpack.server.config.js b/webpack/webpack.server.config.js index d73513e..995a6b3 100644 --- a/webpack/webpack.server.config.js +++ b/webpack/webpack.server.config.js @@ -7,7 +7,7 @@ const VueSSRServerPlugin = require('vue-server-renderer/server-plugin') module.exports = merge(base, { target: 'node', devtool: '#source-map', - entry: './assets/entry-server.js', + entry: './app/web/assets/entry-server.js', output: { filename: 'server-bundle.js', libraryTarget: 'commonjs2'