From bd189d4325a7e6057db3f55b4eff85cb6aa0354d Mon Sep 17 00:00:00 2001 From: root Date: Tue, 20 Jul 2021 13:23:08 +0530 Subject: [PATCH] Port --- package.json | 6 +- src/App.vue | 94 ++++++----- src/main.js | 4 + src/plugins/vuetify.js | 14 ++ src/router/index.js | 72 ++++++++ src/routes/Channel.vue | 116 +++++++++++++ src/routes/ErrorHandler.vue | 16 ++ src/routes/FeedPage.vue | 83 ++++++++++ src/routes/ImportPage.vue | 129 +++++++++++++++ src/routes/LoginPage.vue | 66 ++++++++ src/routes/Navigation.vue | 104 ++++++++++++ src/routes/Player.vue | 271 +++++++++++++++++++++++++++++++ src/routes/Playlist.vue | 90 ++++++++++ src/routes/Preferences.vue | 250 ++++++++++++++++++++++++++++ src/routes/RegisterPage.vue | 66 ++++++++ src/routes/SearchResults.vue | 125 ++++++++++++++ src/routes/SearchSuggestions.vue | 102 ++++++++++++ src/routes/TrendingPage.vue | 45 +++++ src/routes/VideoItem.vue | 55 +++++++ src/routes/VideoRedirect.vue | 17 ++ src/routes/WatchVideo.vue | 270 ++++++++++++++++++++++++++++++ src/store/index.js | 15 ++ yarn.lock | 14 +- 23 files changed, 1983 insertions(+), 41 deletions(-) create mode 100644 src/router/index.js create mode 100644 src/routes/Channel.vue create mode 100644 src/routes/ErrorHandler.vue create mode 100644 src/routes/FeedPage.vue create mode 100644 src/routes/ImportPage.vue create mode 100644 src/routes/LoginPage.vue create mode 100644 src/routes/Navigation.vue create mode 100644 src/routes/Player.vue create mode 100644 src/routes/Playlist.vue create mode 100644 src/routes/Preferences.vue create mode 100644 src/routes/RegisterPage.vue create mode 100644 src/routes/SearchResults.vue create mode 100644 src/routes/SearchSuggestions.vue create mode 100644 src/routes/TrendingPage.vue create mode 100644 src/routes/VideoItem.vue create mode 100644 src/routes/VideoRedirect.vue create mode 100644 src/routes/WatchVideo.vue create mode 100644 src/store/index.js diff --git a/package.json b/package.json index 9b8fdb8..b30c96d 100644 --- a/package.json +++ b/package.json @@ -9,11 +9,15 @@ "dependencies": { "core-js": "^3.6.5", "vue": "^2.6.11", - "vuetify": "^2.4.0" + "vue-router": "^3.2.0", + "vuetify": "^2.4.0", + "vuex": "^3.4.0" }, "devDependencies": { "@vue/cli-plugin-babel": "~4.5.0", "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", "@vue/cli-service": "~4.5.0", "@vue/eslint-config-standard": "^5.1.2", "babel-eslint": "^10.1.0", diff --git a/src/App.vue b/src/App.vue index 376e855..684aff2 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,60 +1,78 @@ diff --git a/src/main.js b/src/main.js index f26f408..e02a552 100644 --- a/src/main.js +++ b/src/main.js @@ -1,10 +1,14 @@ import Vue from 'vue' import App from './App.vue' import vuetify from './plugins/vuetify' +import store from './store' +import router from './router' Vue.config.productionTip = false new Vue({ vuetify, + store, + router, render: h => h(App) }).$mount('#app') diff --git a/src/plugins/vuetify.js b/src/plugins/vuetify.js index 496ec37..93c7fbf 100644 --- a/src/plugins/vuetify.js +++ b/src/plugins/vuetify.js @@ -1,7 +1,21 @@ import Vue from 'vue' import Vuetify from 'vuetify/lib/framework' +import colors from 'vuetify/es5/util/colors' Vue.use(Vuetify) export default new Vuetify({ + theme: { + themes: { + light: { + primary: colors.deepPurple.base, + secondary: colors.purple.base, + accent: colors.pink.base, + error: colors.red.base, + warning: colors.deepOrange.base, + info: colors.blue.base, + success: colors.green.base + }, + }, + }, }) diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..ea8f44a --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,72 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' + +import TrendingPage from '@/routes/TrendingPage' +import Preferences from '@/routes/Preferences' + +Vue.use(VueRouter) + +const routes = [ + { + path: '/', + name: 'Trending', + component: TrendingPage + }, + { + path: '/preferences', + name: 'Preferences', + component: Preferences + }, + { + path: '/results', + name: 'SearchResults', + component: () => import('@/routes/SearchResults') + }, + { + path: '/playlist', + name: 'Playlist', + component: () => import('@/routes/Playlist') + }, + { + path: '/:path(v|w|embed|shorts|watch)/:v?', + name: 'WatchVideo', + component: () => import('@/routes/WatchVideo') + }, + { + path: '/:path(channel|user|c)/:channelId/:videos?', + name: 'Channel', + component: () => import('@/routes/Channel') + }, + { + path: '/login', + name: 'Login', + component: () => import('@/routes/LoginPage') + }, + { + path: '/register', + name: 'Register', + component: () => import('@/routes/RegisterPage') + }, + { + path: '/feed', + name: 'Feed', + component: () => import('@/routes/FeedPage') + }, + { + path: '/import', + name: 'Import', + component: () => import('@/routes/ImportPage') + }, + { + path: '/:videoId([a-zA-Z0-9_-]{11})', + component: () => import('@/routes/VideoRedirect') + } +] + +const router = new VueRouter({ + mode: 'history', + base: process.env.BASE_URL, + routes +}) + +export default router diff --git a/src/routes/Channel.vue b/src/routes/Channel.vue new file mode 100644 index 0000000..11da53d --- /dev/null +++ b/src/routes/Channel.vue @@ -0,0 +1,116 @@ + + + diff --git a/src/routes/ErrorHandler.vue b/src/routes/ErrorHandler.vue new file mode 100644 index 0000000..40b4c8c --- /dev/null +++ b/src/routes/ErrorHandler.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/routes/FeedPage.vue b/src/routes/FeedPage.vue new file mode 100644 index 0000000..e38c905 --- /dev/null +++ b/src/routes/FeedPage.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/routes/ImportPage.vue b/src/routes/ImportPage.vue new file mode 100644 index 0000000..ca6be9f --- /dev/null +++ b/src/routes/ImportPage.vue @@ -0,0 +1,129 @@ + + + diff --git a/src/routes/LoginPage.vue b/src/routes/LoginPage.vue new file mode 100644 index 0000000..20bae5c --- /dev/null +++ b/src/routes/LoginPage.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/routes/Navigation.vue b/src/routes/Navigation.vue new file mode 100644 index 0000000..03405a7 --- /dev/null +++ b/src/routes/Navigation.vue @@ -0,0 +1,104 @@ + + + + + diff --git a/src/routes/Player.vue b/src/routes/Player.vue new file mode 100644 index 0000000..21b7f6e --- /dev/null +++ b/src/routes/Player.vue @@ -0,0 +1,271 @@ + + + diff --git a/src/routes/Playlist.vue b/src/routes/Playlist.vue new file mode 100644 index 0000000..2015bae --- /dev/null +++ b/src/routes/Playlist.vue @@ -0,0 +1,90 @@ + + + diff --git a/src/routes/Preferences.vue b/src/routes/Preferences.vue new file mode 100644 index 0000000..25872eb --- /dev/null +++ b/src/routes/Preferences.vue @@ -0,0 +1,250 @@ + + + diff --git a/src/routes/RegisterPage.vue b/src/routes/RegisterPage.vue new file mode 100644 index 0000000..baf067e --- /dev/null +++ b/src/routes/RegisterPage.vue @@ -0,0 +1,66 @@ + + + diff --git a/src/routes/SearchResults.vue b/src/routes/SearchResults.vue new file mode 100644 index 0000000..0f9fdc2 --- /dev/null +++ b/src/routes/SearchResults.vue @@ -0,0 +1,125 @@ + + + diff --git a/src/routes/SearchSuggestions.vue b/src/routes/SearchSuggestions.vue new file mode 100644 index 0000000..10ce3c5 --- /dev/null +++ b/src/routes/SearchSuggestions.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/src/routes/TrendingPage.vue b/src/routes/TrendingPage.vue new file mode 100644 index 0000000..b0fb2fe --- /dev/null +++ b/src/routes/TrendingPage.vue @@ -0,0 +1,45 @@ + + + diff --git a/src/routes/VideoItem.vue b/src/routes/VideoItem.vue new file mode 100644 index 0000000..c2dab8b --- /dev/null +++ b/src/routes/VideoItem.vue @@ -0,0 +1,55 @@ + + + diff --git a/src/routes/VideoRedirect.vue b/src/routes/VideoRedirect.vue new file mode 100644 index 0000000..7fb05a0 --- /dev/null +++ b/src/routes/VideoRedirect.vue @@ -0,0 +1,17 @@ + + + diff --git a/src/routes/WatchVideo.vue b/src/routes/WatchVideo.vue new file mode 100644 index 0000000..580c0d7 --- /dev/null +++ b/src/routes/WatchVideo.vue @@ -0,0 +1,270 @@ + + + diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..332b916 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + }, + mutations: { + }, + actions: { + }, + modules: { + } +}) diff --git a/yarn.lock b/yarn.lock index b634092..c1d4a19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1311,14 +1311,14 @@ webpack "^4.0.0" yorkie "^2.0.0" -"@vue/cli-plugin-router@^4.5.13": +"@vue/cli-plugin-router@^4.5.13", "@vue/cli-plugin-router@~4.5.0": version "4.5.13" resolved "https://registry.yarnpkg.com/@vue/cli-plugin-router/-/cli-plugin-router-4.5.13.tgz#0b67c8898a2bf132941919a2a2e5f3aacbd9ffbe" integrity sha512-tgtMDjchB/M1z8BcfV4jSOY9fZSMDTPgF9lsJIiqBWMxvBIsk9uIZHxp62DibYME4CCKb/nNK61XHaikFp+83w== dependencies: "@vue/cli-shared-utils" "^4.5.13" -"@vue/cli-plugin-vuex@^4.5.13": +"@vue/cli-plugin-vuex@^4.5.13", "@vue/cli-plugin-vuex@~4.5.0": version "4.5.13" resolved "https://registry.yarnpkg.com/@vue/cli-plugin-vuex/-/cli-plugin-vuex-4.5.13.tgz#98646d8bc1e69cf6c6a6cba2fed3eace0356c360" integrity sha512-I1S9wZC7iI0Wn8kw8Zh+A2Qkf6s1M6vTGBkx8boXjuzfwEEyEHRxadsVCecZc8Mkpydo0nykj+MyYF96TKFuVA== @@ -8900,6 +8900,11 @@ vue-loader@^15.9.2: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" +vue-router@^3.2.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.2.tgz#5f55e3f251970e36c3e8d88a7cd2d67a350ade5c" + integrity sha512-807gn82hTnjCYGrnF3eNmIw/dk7/GE4B5h69BlyCK9KHASwSloD1Sjcn06zg9fVG4fYH2DrsNBZkpLtb25WtaQ== + vue-style-loader@^4.1.0, vue-style-loader@^4.1.2: version "4.1.3" resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35" @@ -8940,6 +8945,11 @@ vuetify@^2.4.0: resolved "https://registry.yarnpkg.com/vuetify/-/vuetify-2.5.6.tgz#9cbb1eacece6c42028216312b9be23e35a7f5cf4" integrity sha512-2T8ML5PYuJ/AdMVH3ZIvzHnsM0nX8t4Xzj+0HFFGfLT7jLlptCFpG+JE8+kyrgGZlbUgulyOwCUu8hJkVsReFA== +vuex@^3.4.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/vuex/-/vuex-3.6.2.tgz#236bc086a870c3ae79946f107f16de59d5895e71" + integrity sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw== + watchpack-chokidar2@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957"