aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--components/Details.vue43
-rw-r--r--components/Footer.vue5
-rw-r--r--components/Popular.vue4
-rw-r--r--components/Recommendations.vue2
-rw-r--r--components/Trending.vue4
-rw-r--r--nuxt.config.ts2
-rw-r--r--package-lock.json4
-rw-r--r--package.json2
-rw-r--r--pages/dmca/index.vue31
-rw-r--r--pages/i/[id].vue39
-rw-r--r--public/robots.txt2
-rw-r--r--public/sitemap.xml15
-rw-r--r--public/sitemap_index.xml15
-rw-r--r--server/tsconfig.json3
14 files changed, 123 insertions, 48 deletions
diff --git a/components/Details.vue b/components/Details.vue
new file mode 100644
index 0000000..2983bab
--- /dev/null
+++ b/components/Details.vue
@@ -0,0 +1,43 @@
+<template>
+ <section v-show="data" class="space-y-4">
+ <section v-show="data.bannerImage" class="flex justify-center items-center">
+ <NuxtImg :src="data.bannerImage" class="w-full h-20 md:h-40 object-cover rounded-sm opacity-75" />
+ </section>
+ <section class="flex flex-col">
+ <h2 v-show="data.title.romaji" class="text-secondary text-2xl font-semibold">{{ data.title?.romaji }}</h2>
+ <p v-show="data.title.native" class="text-primary">{{ data.title.native }}</p>
+ </section>
+ <section class="grid grid-cols-[auto,1fr] gap-4">
+ <div class="hidden md:flex">
+ <NuxtImg v-show="data.coverImage && data.coverImage.large" :src="data.coverImage.large"
+ class="w-full h-72 object-cover rounded-sm" />
+ </div>
+ <div class="flex flex-col gap-2">
+ <div class="flex items-center gap-1">
+ <p v-show="data.season" class="text-primary">{{ data.season }}</p>
+ <p v-show="data.year" class="text-primary">{{ data.year }}</p>
+ </div>
+ <div class="flex flex-wrap items-center gap-1">
+ <p v-show="data.episodes" class="text-primary bg-secondary rounded-sm px-2">{{ data.episodes }} Episodes
+ </p>
+ <p v-show="data.score && data.score.averageScore" class="text-primary bg-secondary rounded-sm px-2">{{
+ data.score.averageScore }}%</p>
+ <p v-show="data.format" class="text-primary bg-secondary rounded-sm px-2">{{ data.format }}</p>
+ <p v-show="data.status" class="text-primary bg-secondary rounded-sm px-2">{{ data.status }}</p>
+ </div>
+ <div class="flex flex-wrap items-center gap-1">
+ <div v-show="data.genres" v-for="(genre, index) in data.genres" :key="index">
+ <p class="text-secondary bg-primary rounded-sm px-2">{{ genre }}</p>
+ </div>
+ </div>
+ <div v-show="data.description" v-html="data.description"
+ class="text-primary w-full h-48 overflow-y-auto pr-2" />
+ </div>
+ </section>
+ </section>
+</template>
+
+<script setup>
+const { id } = defineProps(["id"]);
+const { data } = await useFetch("https://api.amvstr.me/api/v2/info/" + id, { key: id });
+</script> \ No newline at end of file
diff --git a/components/Footer.vue b/components/Footer.vue
index 0989c00..5bd4016 100644
--- a/components/Footer.vue
+++ b/components/Footer.vue
@@ -2,10 +2,11 @@
<section class="flex justify-between items-center py-4 px-8">
<p class="text-primary">©{{ currentYear }}. Hiruki</p>
<div class="flex items-center gap-2">
- <NuxtLink class="text-primary bg-secondary text-xl rounded-sm pb-1 px-1.5 hover:bg-opacity-75">
+ <NuxtLink to="https://github.com/Kenimarru/hiruki" target="_blank"
+ class="text-primary bg-secondary text-xl rounded-sm pb-1 px-1.5 hover:bg-opacity-75">
<Icon name="eva:github-fill" />
</NuxtLink>
- <NuxtLink class="text-primary bg-secondary text-xl rounded-sm pb-1 px-1.5 hover:bg-opacity-75">
+ <NuxtLink to="/dmca" class="text-primary bg-secondary text-xl rounded-sm pb-1 px-1.5 hover:bg-opacity-75">
<Icon name="fa-solid:dharmachakra" />
</NuxtLink>
</div>
diff --git a/components/Popular.vue b/components/Popular.vue
index 8e1a707..215fbfb 100644
--- a/components/Popular.vue
+++ b/components/Popular.vue
@@ -1,13 +1,13 @@
<template>
<section class="space-y-4">
<section class="flex flex-col">
- <h2 class="text-secondary text-xl font-semibold">All Time Popular</h2>
+ <h1 class="text-secondary text-xl font-semibold">All Time Popular</h1>
<p class="text-primary text-sm">Most Popular Anime</p>
</section>
<section class="grid grid-cols-2 md:grid-cols-8 gap-2">
<NuxtLink :to="`/i/${item.id}`" class="w-full space-y-1" v-for="item in data.results">
<NuxtImg :src="item.coverImage.large" class="w-full h-44 md:h-56 object-cover rounded-sm" />
- <h2 class="text-primary text-sm truncate">{{ item.title.romaji }}</h2>
+ <h6 class="text-primary text-sm truncate">{{ item.title.romaji }}</h6>
<div class="flex items-center gap-1">
<p class="text-primary bg-secondary text-sm rounded-sm px-1.5">{{ item.format }}</p>
<p class="text-secondary bg-primary text-sm rounded-sm px-1.5">{{ item.seasonYear }}</p>
diff --git a/components/Recommendations.vue b/components/Recommendations.vue
index 34f548f..238e300 100644
--- a/components/Recommendations.vue
+++ b/components/Recommendations.vue
@@ -7,7 +7,7 @@
<section class="grid grid-cols-2 md:grid-cols-8 gap-2">
<NuxtLink :to="`/i/${item.id}`" class="w-full space-y-1" v-for="item in data.results.slice(0, 8)">
<NuxtImg :src="item.coverImage.large" class="w-full h-44 md:h-56 object-cover rounded-sm" />
- <h2 class="text-primary text-sm truncate">{{ item.title.romaji }}</h2>
+ <h6 class="text-primary text-sm truncate">{{ item.title.romaji }}</h6>
<div class="flex items-center gap-1">
<p class="text-primary bg-secondary text-sm rounded-sm px-1.5">{{ item.format }}</p>
<p class="text-secondary bg-primary text-sm rounded-sm px-1.5">{{ item.status }}</p>
diff --git a/components/Trending.vue b/components/Trending.vue
index d16beae..efeb050 100644
--- a/components/Trending.vue
+++ b/components/Trending.vue
@@ -1,13 +1,13 @@
<template>
<section class="space-y-4">
<section class="flex flex-col">
- <h2 class="text-secondary text-xl font-semibold">Trending Now</h2>
+ <h1 class="text-secondary text-xl font-semibold">Trending Now</h1>
<p class="text-primary text-sm">Currently Trending Anime</p>
</section>
<section class="grid grid-cols-2 md:grid-cols-8 gap-2">
<NuxtLink :to="`/i/${item.id}`" class="w-full space-y-1" v-for="item in data.results">
<NuxtImg :src="item.coverImage.large" class="w-full h-44 md:h-56 object-cover rounded-sm" />
- <h2 class="text-primary text-sm truncate">{{ item.title.romaji }}</h2>
+ <h6 class="text-primary text-sm truncate">{{ item.title.romaji }}</h6>
<div class="flex items-center gap-1">
<p class="text-primary bg-secondary text-sm rounded-sm px-1.5">{{ item.format }}</p>
<p class="text-secondary bg-primary text-sm rounded-sm px-1.5">{{ item.seasonYear }}</p>
diff --git a/nuxt.config.ts b/nuxt.config.ts
index 08d8088..896dbac 100644
--- a/nuxt.config.ts
+++ b/nuxt.config.ts
@@ -38,7 +38,7 @@ export default defineNuxtConfig({
},
{
property: "og:image",
- content: "/public/apple-touch-icon.png",
+ content: "/apple-touch-icon.png",
},
{
property: "og:url",
diff --git a/package-lock.json b/package-lock.json
index d528c5c..1cc890b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "hiruki",
- "version": "0.1.0",
+ "version": "0.2.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "hiruki",
- "version": "0.1.0",
+ "version": "0.2.0",
"hasInstallScript": true,
"devDependencies": {
"@nuxt/image": "^1.1.0",
diff --git a/package.json b/package.json
index cc3a469..ecb8b59 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "hiruki",
- "version": "0.1.0",
+ "version": "0.2.0",
"private": true,
"type": "module",
"scripts": {
diff --git a/pages/dmca/index.vue b/pages/dmca/index.vue
new file mode 100644
index 0000000..79732ca
--- /dev/null
+++ b/pages/dmca/index.vue
@@ -0,0 +1,31 @@
+<template>
+ <section class="space-y-4">
+ <section class="flex flex-col gap-2">
+ <h1 class="text-primary text-3xl font-semibold">Disclaimer</h1>
+ <p class="text-primary text-opacity-75">None of the files listed on hiruki.xyz are hosted on our servers. All
+ links point to content hosted on third-party websites. hiruki.xyz does not accept responsibility for content
+ hosted on third-party websites and has no involvement in the downloading/uploading of movies. We only post
+ links that are available on the internet. If you believe that any content on our website infringes upon your
+ intellectual property rights and you hold the copyright for that content, please report it to
+ [email protected] and the content will be immediately removed.</p>
+ </section>
+ <section class="flex flex-col gap-2">
+ <h1 class="text-primary text-3xl font-semibold">DMCA</h1>
+ <p class="text-primary text-opacity-75">The Digital Millennium Copyright Act (DMCA) is a United States copyright
+ law that implements two 1996 treaties of the World Intellectual Property Organization (WIPO).
+
+ The DMCA criminalizes the production and dissemination of technology, devices, or services that are
+ primarily designed or produced for the purpose of circumventing technological measures that effectively
+ control access to copyrighted works.
+
+ The DMCA also provides a safe harbor for online service providers from copyright infringement liability,
+ provided that they meet certain conditions, such as promptly removing infringing material upon notification.
+
+ If you believe that your copyright has been infringed, you can file a DMCA takedown notice with the online
+ service provider that is hosting the infringing material.</p>
+ </section>
+ </section>
+</template>
+
+<script setup>
+</script> \ No newline at end of file
diff --git a/pages/i/[id].vue b/pages/i/[id].vue
index 4fff757..41b04c1 100644
--- a/pages/i/[id].vue
+++ b/pages/i/[id].vue
@@ -1,42 +1,7 @@
<template>
- <section class="space-y-4">
- <section v-if="info.bannerImage" class="flex justify-center items-center">
- <NuxtImg :src="info.bannerImage" class="w-full h-20 md:h-40 object-cover rounded-sm opacity-75" />
- </section>
- <section class="flex flex-col">
- <h2 v-if="info.title.romaji" class="text-secondary text-2xl font-semibold">{{ info.title.romaji }}</h2>
- <p v-if="info.title.native" class="text-primary">{{ info.title.native }}</p>
- </section>
- <section class="grid grid-cols-[auto,1fr] gap-4">
- <div class="hidden md:flex">
- <NuxtImg :src="info.coverImage.large" class="w-full h-72 object-cover rounded-sm" />
- </div>
- <div class="flex flex-col gap-2">
- <div class="flex items-center gap-1">
- <p v-if="info.season" class="text-primary">{{ info.season }}</p>
- <p v-if="info.year" class="text-primary">{{ info.year }}</p>
- </div>
- <div class="flex flex-wrap items-center gap-1">
- <p v-if="info.episodes" class="text-primary bg-secondary rounded-sm px-2">{{ info.episodes }} Episodes
- </p>
- <p v-if="info.score.averageScore" class="text-primary bg-secondary rounded-sm px-2">{{
- info.score.averageScore }}%</p>
- <p v-if="info.format" class="text-primary bg-secondary rounded-sm px-2">{{ info.format }}</p>
- <p v-if="info.status" class="text-primary bg-secondary rounded-sm px-2">{{ info.status }}</p>
- </div>
- <div class="flex flex-wrap items-center gap-1">
- <div v-for="genre in info.genres">
- <p class="text-secondary bg-primary rounded-sm px-2">{{ genre }}</p>
- </div>
- </div>
- <div v-html="info.description" class="text-primary w-full h-48 overflow-y-auto pr-2" />
- </div>
- </section>
- <Recommendations :id="id" />
- </section>
-</template>
+ <Details :id="id" />
+</template>
<script setup>
const { id } = useRoute().params
-const { data: info } = await useFetch("https://api.amvstr.me/api/v2/info/" + id, { key: id });
</script> \ No newline at end of file
diff --git a/public/robots.txt b/public/robots.txt
new file mode 100644
index 0000000..c4d793c
--- /dev/null
+++ b/public/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Disallow: /i/* \ No newline at end of file
diff --git a/public/sitemap.xml b/public/sitemap.xml
new file mode 100644
index 0000000..c80692b
--- /dev/null
+++ b/public/sitemap.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+ <url>
+ <loc>https://hiruki.xyz</loc>
+ <lastmod>2024-01-06</lastmod>
+ <changefreq>always</changefreq>
+ <priority>1</priority>
+ </url>
+ <url>
+ <loc>https://hiruki.xyz/dmca</loc>
+ <lastmod>2024-01-06</lastmod>
+ <changefreq>always</changefreq>
+ <priority>0.8</priority>
+ </url>
+</urlset> \ No newline at end of file
diff --git a/public/sitemap_index.xml b/public/sitemap_index.xml
new file mode 100644
index 0000000..c80692b
--- /dev/null
+++ b/public/sitemap_index.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+ <url>
+ <loc>https://hiruki.xyz</loc>
+ <lastmod>2024-01-06</lastmod>
+ <changefreq>always</changefreq>
+ <priority>1</priority>
+ </url>
+ <url>
+ <loc>https://hiruki.xyz/dmca</loc>
+ <lastmod>2024-01-06</lastmod>
+ <changefreq>always</changefreq>
+ <priority>0.8</priority>
+ </url>
+</urlset> \ No newline at end of file
diff --git a/server/tsconfig.json b/server/tsconfig.json
new file mode 100644
index 0000000..a177e33
--- /dev/null
+++ b/server/tsconfig.json
@@ -0,0 +1,3 @@
+{
+ "extends": "../.nuxt/tsconfig.server.json"
+} \ No newline at end of file