diff options
author | Nikita Krupin <krupin.nikita0110@gmail.com> | 2022-01-05 02:11:06 +0300 |
---|---|---|
committer | Nikita Krupin <krupin.nikita0110@gmail.com> | 2022-01-05 02:11:06 +0300 |
commit | f028584947b612e7785ad4f25a0d8500afda455f (patch) | |
tree | 23571de2ec34c92350f4b34a6eeae12ca073bf21 /Website | |
parent | 673040e07b968229ef14a05d8f3ad4b672b2ae7d (diff) | |
parent | 2aeb21493319a01f8474c2b70903b07732b46e15 (diff) |
fixed conflict
Diffstat (limited to 'Website')
-rw-r--r-- | Website/layouts/default.vue | 31 | ||||
-rw-r--r-- | Website/nuxt.config.js | 13 | ||||
-rw-r--r-- | Website/package-lock.json | 60 | ||||
-rw-r--r-- | Website/package.json | 1 | ||||
-rw-r--r-- | Website/pages/debug.vue | 68 | ||||
-rw-r--r-- | Website/pages/documentation.vue | 60 | ||||
-rw-r--r-- | Website/pages/documentation/endpoints.vue | 19 | ||||
-rw-r--r-- | Website/pages/documentation/fetching.vue | 78 | ||||
-rw-r--r-- | Website/pages/documentation/index.vue | 8 | ||||
-rw-r--r-- | Website/pages/documentation/url.vue | 17 | ||||
-rw-r--r-- | Website/pages/documentation/usage-rights.vue | 30 | ||||
-rw-r--r-- | Website/pages/index.vue | 2 | ||||
-rw-r--r-- | Website/pages/install.vue | 2 |
13 files changed, 360 insertions, 29 deletions
diff --git a/Website/layouts/default.vue b/Website/layouts/default.vue index bde338f..f88d83f 100644 --- a/Website/layouts/default.vue +++ b/Website/layouts/default.vue @@ -31,30 +31,13 @@ export default { data: () => ({ links: [ - { - name: "Home", - path: "/", - }, - { - name: "Install", - path: "/install", - }, - { - name: "Help", - path: "/help", - }, - { - name: "FAQ", - path: "/faq", - }, - { - name: "Donate", - path: "/donate", - }, - { - name: "Links", - path: "/links", - }, + { name: "Home", path: "/" }, + { name: "Install", path: "/install" }, + { name: "Help", path: "/help" }, + { name: "FAQ", path: "/faq" }, + { name: "Donate", path: "/donate" }, + { name: "Links", path: "/links" }, + { name: "API", path: "/documentation" }, ], }), }; diff --git a/Website/nuxt.config.js b/Website/nuxt.config.js index 9860f32..165bff8 100644 --- a/Website/nuxt.config.js +++ b/Website/nuxt.config.js @@ -27,12 +27,18 @@ export default { ], }, + env: { + apiUrl: "https://returnyoutubedislikeapi.com", + }, + + //server: { host: '0.0.0.0', port: 80 }, //LINE FOR DEBUGGING ONLY + target: "static", css: [], plugins: [], components: true, buildModules: ["@nuxtjs/vuetify"], - modules: [], + modules: ["nuxt-user-agent"], // Vuetify module configuration: https://go.nuxtjs.dev/config-vuetify vuetify: { @@ -52,7 +58,7 @@ export default { }, }, }, - + /* build: { extend(config, ctx) { // Run ESLint on save (dev-only) @@ -65,5 +71,6 @@ export default { }); } }, - }, + } +*/ }; diff --git a/Website/package-lock.json b/Website/package-lock.json index a9adf2f..3dca403 100644 --- a/Website/package-lock.json +++ b/Website/package-lock.json @@ -10,9 +10,11 @@ "dependencies": { "core-js": "^3.15.1", "nuxt": "^2.15.7", + "nuxt-user-agent": "^1.2.2", "vuetify": "^2.5.5" }, "devDependencies": { + "@nuxtjs/device": "^2.1.0", "@nuxtjs/vuetify": "^1.12.1", "babel-eslint": "^10.1.0", "eslint": "^7.32.0", @@ -2643,6 +2645,21 @@ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, + "node_modules/@nuxtjs/device": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/device/-/device-2.1.0.tgz", + "integrity": "sha512-TYBdt1w2bmCCWp+MhgcBATZtqyUBi3nSdNpcLGILw5USLwCsC/yZtIkq9YisuEzuRnod9w/RZpoE80MxLftEuA==", + "dev": true, + "dependencies": { + "defu": "^3.2.2" + } + }, + "node_modules/@nuxtjs/device/node_modules/defu": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/defu/-/defu-3.2.2.tgz", + "integrity": "sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ==", + "dev": true + }, "node_modules/@nuxtjs/vuetify": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@nuxtjs/vuetify/-/vuetify-1.12.1.tgz", @@ -8914,6 +8931,14 @@ "nuxt": "bin/nuxt.js" } }, + "node_modules/nuxt-user-agent": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/nuxt-user-agent/-/nuxt-user-agent-1.2.2.tgz", + "integrity": "sha512-Z9d+r1/PzJAvrr4rX70IWvRyI3qw3RukAGrRZPZ9WeByuCWmVKiW8G1AhdkUOyrDrVoBUC59iLqIVkop/NjSuQ==", + "dependencies": { + "woothee": "^1.8.1" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -14548,6 +14573,11 @@ "node": ">=8" } }, + "node_modules/woothee": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/woothee/-/woothee-1.11.1.tgz", + "integrity": "sha512-KdArM3MsNa5tlSBSL29w9ouy9MXZoFPeUdPVnL4QZH3iyV8HsqnwbWw2YLiXEx2wAh0bM55dnl0+qDE6KHBlhQ==" + }, "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -16628,6 +16658,23 @@ } } }, + "@nuxtjs/device": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@nuxtjs/device/-/device-2.1.0.tgz", + "integrity": "sha512-TYBdt1w2bmCCWp+MhgcBATZtqyUBi3nSdNpcLGILw5USLwCsC/yZtIkq9YisuEzuRnod9w/RZpoE80MxLftEuA==", + "dev": true, + "requires": { + "defu": "^3.2.2" + }, + "dependencies": { + "defu": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/defu/-/defu-3.2.2.tgz", + "integrity": "sha512-8UWj5lNv7HD+kB0e9w77Z7TdQlbUYDVWqITLHNqFIn6khrNHv5WQo38Dcm1f6HeNyZf0U7UbPf6WeZDSdCzGDQ==", + "dev": true + } + } + }, "@nuxtjs/vuetify": { "version": "1.12.1", "resolved": "https://registry.npmjs.org/@nuxtjs/vuetify/-/vuetify-1.12.1.tgz", @@ -21504,6 +21551,14 @@ "@nuxt/webpack": "2.15.8" } }, + "nuxt-user-agent": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/nuxt-user-agent/-/nuxt-user-agent-1.2.2.tgz", + "integrity": "sha512-Z9d+r1/PzJAvrr4rX70IWvRyI3qw3RukAGrRZPZ9WeByuCWmVKiW8G1AhdkUOyrDrVoBUC59iLqIVkop/NjSuQ==", + "requires": { + "woothee": "^1.8.1" + } + }, "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -25917,6 +25972,11 @@ "string-width": "^4.0.0" } }, + "woothee": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/woothee/-/woothee-1.11.1.tgz", + "integrity": "sha512-KdArM3MsNa5tlSBSL29w9ouy9MXZoFPeUdPVnL4QZH3iyV8HsqnwbWw2YLiXEx2wAh0bM55dnl0+qDE6KHBlhQ==" + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", diff --git a/Website/package.json b/Website/package.json index c16dbf1..03b6ce9 100644 --- a/Website/package.json +++ b/Website/package.json @@ -12,6 +12,7 @@ "dependencies": { "core-js": "^3.15.1", "nuxt": "^2.15.7", + "nuxt-user-agent": "^1.2.2", "vuetify": "^2.5.5" }, "devDependencies": { diff --git a/Website/pages/debug.vue b/Website/pages/debug.vue new file mode 100644 index 0000000..fbdfc50 --- /dev/null +++ b/Website/pages/debug.vue @@ -0,0 +1,68 @@ +<template> + <div> + <!-- Top Section // "Sections" Card --> + <v-card max-width="600px" class="rounded-lg"> + <v-card-title style="padding-bottom: 0">Debug Information</v-card-title> + <v-card-text style="text-align: left"> + <!-- Gather Browser Information --> + <span><b>Browser Information:</b></span + ><br /> + <span>Browser: {{ device._parsed.name }}</span + ><br /> + <span>Browser Vendor: {{ device._parsed.vendor }}</span + ><br /> + <span>Version: {{ device._parsed.version }}</span + ><br /> + <span>Operating System: {{ device._parsed.os }}</span + ><br /> + <span>Operating System Version: {{ device._parsed.os_version }}</span + ><br /> + <span>Device Type: {{ device._parsed.category }}</span + ><br /><br /> + <!-- Gather Extension Information --> + <span><b>Installed Extension Information:</b></span + ><br /> + <span + >Extension Version: + <span id="extension-version">Waiting For Extension...</span></span + ><br /> + </v-card-text> + <v-card-actions> + <v-spacer /> + <v-btn @click="copy()"> + <v-icon small style="margin-right: 0.25em">mdi-content-copy</v-icon + >Copy + </v-btn> + </v-card-actions> + </v-card> + </div> +</template> + +<script> +export default { + data() { + return { + device: this.$ua, + }; + }, + + methods: { + copy() { + const toCopy = `\`\`\` +Browser Information: +Browser: ${this.device._parsed.name} +Browser Vendor: ${this.device._parsed.vendor} +Version: ${this.device._parsed.version} +Operating System: ${this.device._parsed.os} +Operating System Version: ${this.device._parsed.os_version} +Device Type: ${this.device._parsed.category} + +Installed Extension Information: +Extension Version: ${document.getElementById("extension-version").innerHTML} +\`\`\``; + + navigator.clipboard.writeText(toCopy); + }, + }, +}; +</script> diff --git a/Website/pages/documentation.vue b/Website/pages/documentation.vue new file mode 100644 index 0000000..ff21a68 --- /dev/null +++ b/Website/pages/documentation.vue @@ -0,0 +1,60 @@ +<template> + <div> + <!-- Top Section // "Sections" Card --> + <v-card max-width="600px" class="rounded-lg"> + <v-card-title style="padding-bottom: 0">Sections</v-card-title> + <v-list> + <!-- Dynamically Generate Links From Below --> + <v-list-item v-for="(item, i) in links" :key="i" router :to="item.to"> + <v-list-item-icon> + <v-icon v-text="item.icon" /> + </v-list-item-icon> + <v-list-item-title style="text-align: left"> + <v-list-item-title v-text="item.text" /> + </v-list-item-title> + </v-list-item> + </v-list> + </v-card> + + <!-- Child Pages // Card --> + <v-card + max-width="600px" + class="rounded-lg" + style="margin: 1em; padding: 0.75em; text-align: left" + > + <NuxtChild /> + </v-card> + </div> +</template> + +<script> +export default { + data() { + return { + //--- Links To Generate Above ---// + links: [ + { + text: "Usage Rights", + icon: "mdi-book-open-variant", + to: "/documentation/usage-rights", + }, + { + text: "URL Information", + icon: "mdi-web", + to: "/documentation/url", + }, + { + text: "Available Endpoints", + icon: "mdi-transit-connection-variant", + to: "/documentation/endpoints", + }, + { + text: "Basic Fetching Tutorial", + icon: "mdi-school", + to: "/documentation/fetching", + }, + ], + }; + }, +}; +</script> diff --git a/Website/pages/documentation/endpoints.vue b/Website/pages/documentation/endpoints.vue new file mode 100644 index 0000000..ef94c10 --- /dev/null +++ b/Website/pages/documentation/endpoints.vue @@ -0,0 +1,19 @@ +<template> + <div> + <h1 class="primary--text">Available Endpoints</h1> + List of available endpoints is available here:<br /> + <a :href="endpointUrl" target="_blank" v-text="endpointUrl" /> + </div> +</template> + +<script> +let apiUrl = process.env.apiUrl; +export default { + data() { + return { + apiUrl: apiUrl, + endpointUrl: apiUrl + "/swagger/index.html", + }; + }, +}; +</script> diff --git a/Website/pages/documentation/fetching.vue b/Website/pages/documentation/fetching.vue new file mode 100644 index 0000000..651f2b8 --- /dev/null +++ b/Website/pages/documentation/fetching.vue @@ -0,0 +1,78 @@ +<template> + <div> + <h1 class="primary--text">Basic Fetching Tutorial</h1> + + <span>Example to get votes of a given YouTube video ID:</span> + <a href="https://youtube.com/watch?v=kxOuG8jMIgI" target="_blank" + >kxOuG8jMIgI</a + ><br /><br /> + + <h2>Example Request:</h2> + <span><b>Request URL:</b></span> + <a + :href="apiUrl + '/votes?videoId=kxOuG8jMIgI'" + target="_blank" + v-text="apiUrl + '/votes?videoId=kxOuG8jMIgI'" + /><br /> + <span + ><b>Request Method:</b> + <a + href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET" + target="_blank" + >HTTP/GET</a + ></span + ><br /> + <span><b>Headers:</b></span + ><br /> + <code class="code"> + Accept: text/html,application/xhtml+xml,application/xml;q=0.9<br /> + Pragma: no-cache<br /> + Cache-Control: no-cache<br /> + Connection: keep-alive </code + ><br /> + <span><b>Response:</b></span + ><br /> + <div class="code"> + <code style="background-color: rgba(0, 0, 0, 0)"> + {<br /> + "id": "kxOuG8jMIgI",<br /> + "dateCreated": "2021-12-20T12:25:54.418014Z",<br /> + "likes": 27326,<br /> + "dislikes": 498153,<br /> + "rating": 1.212014408444885,<br /> + "viewCount": 3149885,<br /> + "deleted": false<br /> + } + </code> + </div> + <br /><br /> + <v-alert border="left" color="orange" text type="info"> + <span>An invalid YouTube ID will return status code 404 "Not Found".</span + ><br /> + <span + >An incorrectly formatted YouTube ID will return 400 "Bad + Request".</span + > + </v-alert> + + <a :href="endpointUrl" target="_blank" v-text="endpointUrl" /> + </div> +</template> + +<style scoped> +.code { + width: 100%; + background: #353535; + border-radius: 3px; +} +</style> + +<script> +export default { + data() { + return { + apiUrl: process.env.apiUrl, + }; + }, +}; +</script> diff --git a/Website/pages/documentation/index.vue b/Website/pages/documentation/index.vue new file mode 100644 index 0000000..ad3cd1d --- /dev/null +++ b/Website/pages/documentation/index.vue @@ -0,0 +1,8 @@ +<template> + <div> + <h1> + Welcome to the <span class="primary--text">official RYD docs</span>! + </h1> + <p>To get started, select a section.</p> + </div> +</template> diff --git a/Website/pages/documentation/url.vue b/Website/pages/documentation/url.vue new file mode 100644 index 0000000..e95f542 --- /dev/null +++ b/Website/pages/documentation/url.vue @@ -0,0 +1,17 @@ +<template> + <div> + <h1 class="primary--text">URL Information</h1> + The API is accessible over the following base URL:<br /> + <a :href="apiUrl" target="_blank" v-text="apiUrl" /> + </div> +</template> + +<script> +export default { + data() { + return { + apiUrl: process.env.apiUrl, + }; + }, +}; +</script> diff --git a/Website/pages/documentation/usage-rights.vue b/Website/pages/documentation/usage-rights.vue new file mode 100644 index 0000000..09bf581 --- /dev/null +++ b/Website/pages/documentation/usage-rights.vue @@ -0,0 +1,30 @@ +<template> + <div> + <h1 class="primary--text">Usage Rights</h1> + <p> + Third party use of this open API is allowed with the following + restrictions: + </p> + <ul> + <li> + <b>Attribution:</b> This project should be clearly attributed with + either a link to this repo or a link to returnyoutubedislike.com. + </li> + <li> + <b>Rate Limiting:</b> There are per client rate limits in place of 100 + per minute and 10'000 per day. This will return a 429 status code + indicating that your application should back off. + </li> + </ul> + </div> +</template> + +<style scoped> +li { + margin-top: 0.5em; +} + +b { + font-weight: 900 !important; +} +</style> diff --git a/Website/pages/index.vue b/Website/pages/index.vue index 3a3efd3..bb44926 100644 --- a/Website/pages/index.vue +++ b/Website/pages/index.vue @@ -28,7 +28,7 @@ <h1 class="title-text">Return YouTube Dislike</h1> <div class="mb-4" style="color: #999"> <p style="margin-top: 0"> - Browser extension and an API that show you dislikes on Youtube + Browser extension and an API that shows you dislikes on Youtube </p> </div> diff --git a/Website/pages/install.vue b/Website/pages/install.vue index b9b0032..a92b2f9 100644 --- a/Website/pages/install.vue +++ b/Website/pages/install.vue @@ -92,7 +92,7 @@ export default { scriptLink: "https://github.com/Anarios/return-youtube-dislike/raw/main/Extensions/UserScript/Return%20Youtube%20Dislike.user.js", - iosJailbreakLink: "https://repo.lillieweeb001.xyz/", + iosJailbreakLink: "https://chariz.com/get/return-youtube-dislike/", }; }, }; |