diff --git a/apps/api/package.json b/apps/api/package.json index ad2402ad..8d223264 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -1,107 +1,107 @@ { - "name": "@rocksky/api", - "version": "0.0.1", - "private": true, - "type": "module", - "module": "dist/index.js", - "scripts": { - "lexgen": "lex gen-server ./src/lexicon ./src/tealfm/lexicons/teal/**/* ./lexicons/**/* ./lexicons/* ./src/tealfm/lexicons/**/*", - "dev": "concurrently 'tsx --watch ./src/index.ts' 'tsx --watch ./src/server.ts'", - "prod": "tsx ./src/index.ts", - "build": "pkgroll", - "sync": "tsx ./src/scripts/sync.ts", - "meili:sync": "tsx ./src/scripts/meili.ts", - "sync:library": "tsx ./src/scripts/sync-library.ts", - "avatar": "tsx ./src/scripts/avatar.ts", - "genres": "tsx ./src/scripts/genres.ts", - "spotify": "tsx ./src/scripts/spotify.ts", - "exp": "tsx ./src/scripts/exp.ts", - "pkl:eval": "pkl eval -f json", - "pkl:gen": "tsx ./scripts/pkl.ts", - "dev:xrpc": "tsx --watch ./src/server.ts", - "prod:xrpc": "tsx ./src/server.ts", - "db:migrate": "drizzle-kit migrate", - "db:gen-migration": "drizzle-kit generate", - "prod:all": "concurrently 'tsx ./src/index.ts' 'tsx ./src/server.ts'", - "format": "biome format src", - "lint": "biome lint src", - "feed": "bun ./src/scripts/feed.ts", - "dedup": "bun ./src/scripts/dedup.ts" - }, - "dependencies": { - "@atproto/api": "^0.13.31", - "@atproto/common": "^0.4.6", - "@atproto/identity": "^0.4.5", - "@atproto/jwk-jose": "0.1.5", - "@atproto/lex-cli": "^0.5.6", - "@atproto/lexicon": "^0.4.5", - "@atproto/oauth-client-node": "0.2.14", - "@atproto/sync": "^0.1.11", - "@atproto/syntax": "^0.3.1", - "@atproto/xrpc-server": "^0.7.8", - "@hono/node-server": "^1.13.8", - "@hono/node-ws": "^1.1.0", - "@opentelemetry/api": "^1.9.0", - "@opentelemetry/auto-instrumentations-node": "^0.58.0", - "@opentelemetry/exporter-metrics-otlp-http": "^0.200.0", - "@opentelemetry/exporter-trace-otlp-http": "^0.200.0", - "@opentelemetry/resources": "^2.0.0", - "@opentelemetry/sdk-metrics": "^2.0.0", - "@opentelemetry/sdk-node": "^0.200.0", - "@opentelemetry/semantic-conventions": "^1.32.0", - "@pyroscope/nodejs": "^0.4.5", - "assert": "^2.1.0", - "axios": "^1.7.9", - "better-sqlite3": "^12.4.1", - "chalk": "^5.4.1", - "chanfana": "^2.0.2", - "cors": "^2.8.5", - "dayjs": "^1.11.13", - "dotenv": "^16.4.7", - "drizzle-orm": "^0.44.2", - "dropbox": "^10.34.0", - "effect": "^3.14.22", - "envalid": "^8.0.0", - "express": "^5.1.0", - "googleapis": "^146.0.0", - "hono": "^4.4.7", - "http-proxy-middleware": "^3.0.5", - "ioredis": "^5.8.1", - "iron-session": "^8.0.4", - "jose": "^6.1.0", - "jsonwebtoken": "^9.0.2", - "kysely": "^0.27.5", - "lodash": "^4.17.21", - "nats": "^2.29.2", - "node-cron": "^4.2.1", - "pg": "^8.13.3", - "prompts": "^2.4.2", - "ramda": "^0.30.1", - "redis": "^4.7.0", - "redlock": "^5.0.0-beta.2", - "unstorage": "^1.14.4", - "url": "^0.11.4", - "uuid": "^11.1.0", - "ws": "^8.18.1", - "zod": "^3.24.1" - }, - "devDependencies": { - "@biomejs/biome": "^2.2.3", - "@pkl-community/pkl": "^0.28.2", - "@types/express": "^5.0.2", - "@types/lodash": "^4.17.17", - "@types/node": "^22.13.0", - "@types/ramda": "^0.30.2", - "@types/service-worker-mock": "^2.0.1", - "concurrently": "^9.2.0", - "drizzle-kit": "^0.31.1", - "pkgroll": "^2.6.1", - "tsx": "^4.19.2", - "zx": "^8.5.4" - }, - "exports": { - ".": { - "import": "./dist/index.js" - } - } -} \ No newline at end of file + "name": "@rocksky/api", + "version": "0.0.1", + "private": true, + "type": "module", + "module": "dist/index.js", + "scripts": { + "lexgen": "lex gen-server ./src/lexicon ./src/tealfm/lexicons/teal/**/* ./lexicons/**/* ./lexicons/* ./src/tealfm/lexicons/**/*", + "dev": "concurrently 'tsx --watch ./src/index.ts' 'tsx --watch ./src/server.ts'", + "prod": "tsx ./src/index.ts", + "build": "pkgroll", + "sync": "tsx ./src/scripts/sync.ts", + "meili:sync": "tsx ./src/scripts/meili.ts", + "sync:library": "tsx ./src/scripts/sync-library.ts", + "avatar": "tsx ./src/scripts/avatar.ts", + "genres": "tsx ./src/scripts/genres.ts", + "spotify": "tsx ./src/scripts/spotify.ts", + "exp": "tsx ./src/scripts/exp.ts", + "pkl:eval": "pkl eval -f json", + "pkl:gen": "tsx ./scripts/pkl.ts", + "dev:xrpc": "tsx --watch ./src/server.ts", + "prod:xrpc": "tsx ./src/server.ts", + "db:migrate": "drizzle-kit migrate", + "db:gen-migration": "drizzle-kit generate", + "prod:all": "concurrently 'tsx ./src/index.ts' 'tsx ./src/server.ts'", + "format": "biome format src", + "lint": "biome lint src", + "feed": "tsx ./src/scripts/feed.ts", + "dedup": "bun ./src/scripts/dedup.ts" + }, + "dependencies": { + "@atproto/api": "^0.13.31", + "@atproto/common": "^0.4.6", + "@atproto/identity": "^0.4.5", + "@atproto/jwk-jose": "0.1.5", + "@atproto/lex-cli": "^0.5.6", + "@atproto/lexicon": "^0.4.5", + "@atproto/oauth-client-node": "0.2.14", + "@atproto/sync": "^0.1.11", + "@atproto/syntax": "^0.3.1", + "@atproto/xrpc-server": "^0.7.8", + "@hono/node-server": "^1.13.8", + "@hono/node-ws": "^1.1.0", + "@opentelemetry/api": "^1.9.0", + "@opentelemetry/auto-instrumentations-node": "^0.58.0", + "@opentelemetry/exporter-metrics-otlp-http": "^0.200.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.200.0", + "@opentelemetry/resources": "^2.0.0", + "@opentelemetry/sdk-metrics": "^2.0.0", + "@opentelemetry/sdk-node": "^0.200.0", + "@opentelemetry/semantic-conventions": "^1.32.0", + "@pyroscope/nodejs": "^0.4.5", + "assert": "^2.1.0", + "axios": "^1.7.9", + "better-sqlite3": "^12.4.1", + "chalk": "^5.4.1", + "chanfana": "^2.0.2", + "cors": "^2.8.5", + "dayjs": "^1.11.13", + "dotenv": "^16.4.7", + "drizzle-orm": "^0.44.2", + "dropbox": "^10.34.0", + "effect": "^3.14.22", + "envalid": "^8.0.0", + "express": "^5.1.0", + "googleapis": "^146.0.0", + "hono": "^4.4.7", + "http-proxy-middleware": "^3.0.5", + "ioredis": "^5.8.1", + "iron-session": "^8.0.4", + "jose": "^6.1.0", + "jsonwebtoken": "^9.0.2", + "kysely": "^0.27.5", + "lodash": "^4.17.21", + "nats": "^2.29.2", + "node-cron": "^4.2.1", + "pg": "^8.13.3", + "prompts": "^2.4.2", + "ramda": "^0.30.1", + "redis": "^4.7.0", + "redlock": "^5.0.0-beta.2", + "unstorage": "^1.14.4", + "url": "^0.11.4", + "uuid": "^11.1.0", + "ws": "^8.18.1", + "zod": "^3.24.1" + }, + "devDependencies": { + "@biomejs/biome": "^2.2.3", + "@pkl-community/pkl": "^0.28.2", + "@types/express": "^5.0.2", + "@types/lodash": "^4.17.17", + "@types/node": "^22.13.0", + "@types/ramda": "^0.30.2", + "@types/service-worker-mock": "^2.0.1", + "concurrently": "^9.2.0", + "drizzle-kit": "^0.31.1", + "pkgroll": "^2.6.1", + "tsx": "^4.19.2", + "zx": "^8.5.4" + }, + "exports": { + ".": { + "import": "./dist/index.js" + } + } +} diff --git a/apps/web/src/components/ScrobblesAreaChart/ScrobblesAreaChart.tsx b/apps/web/src/components/ScrobblesAreaChart/ScrobblesAreaChart.tsx index ac1064b8..f2ea915f 100644 --- a/apps/web/src/components/ScrobblesAreaChart/ScrobblesAreaChart.tsx +++ b/apps/web/src/components/ScrobblesAreaChart/ScrobblesAreaChart.tsx @@ -98,6 +98,13 @@ function ScrobblesAreaChart() { // eslint-disable-next-line react-hooks/exhaustive-deps }, [pathname]); + const chartData = + pathname === "/" || + pathname.startsWith("/dropbox") || + (pathname.startsWith("/googledrive") && getScrobblesChart().length > 0) + ? getScrobblesChart() + : data; + return ( <> {!pathname.includes("/playlist/") && ( @@ -111,13 +118,7 @@ function ScrobblesAreaChart() {