aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.dockerignore6
-rw-r--r--Dockerfile19
-rw-r--r--package.json6
-rw-r--r--src/index.ts2
-rw-r--r--src/services/player.ts2
-rw-r--r--yarn.lock48
6 files changed, 55 insertions, 28 deletions
diff --git a/.dockerignore b/.dockerignore
new file mode 100644
index 0000000..bc872cb
--- /dev/null
+++ b/.dockerignore
@@ -0,0 +1,6 @@
+node_modules
+data
+dist
+dts
+yarn-error.log
+.env
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..d4f64df
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,19 @@
+FROM jrottenberg/ffmpeg:4.0-scratch
+FROM node:13
+
+# Copy ffmpeg bins
+COPY --from=0 / /
+
+WORKDIR /usr/app
+
+COPY package.json .
+
+RUN yarn install
+
+COPY . .
+
+RUN yarn run build
+
+ENV DATA_DIR /data
+
+CMD ["yarn", "start"]
diff --git a/package.json b/package.json
index 808fa87..d546abf 100644
--- a/package.json
+++ b/package.json
@@ -31,8 +31,8 @@
"@types/spotify-web-api-node": "^4.0.1",
"@types/validator": "^12.0.1",
"@types/ws": "^7.2.2",
- "@typescript-eslint/eslint-plugin": "^2.23.0",
- "@typescript-eslint/parser": "^2.23.0",
+ "@typescript-eslint/eslint-plugin": "^2.24.0",
+ "@typescript-eslint/parser": "^2.24.0",
"eslint": "^6.8.0",
"eslint-config-xo": "^0.29.1",
"eslint-config-xo-typescript": "^0.26.0",
@@ -82,7 +82,7 @@
"spotify-uri": "^2.0.0",
"spotify-web-api-node": "^4.0.0",
"sqlite3": "^4.1.1",
- "youtube.ts": "^0.1.0",
+ "youtube.ts": "^0.1.1",
"ytdl-core": "^2.0.0",
"ytsr": "^0.1.11"
}
diff --git a/src/index.ts b/src/index.ts
index 2d1ea66..b2ee442 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -1,5 +1,6 @@
import Spotify from 'spotify-web-api-node';
import makeDir from 'make-dir';
+import path from 'path';
import container from './inversify.config';
import {TYPES} from './types';
import Bot from './bot';
@@ -16,6 +17,7 @@ const spotify = container.get<Spotify>(TYPES.Lib.Spotify);
// Create data directories if necessary
await makeDir(container.get(TYPES.Config.DATA_DIR));
await makeDir(container.get(TYPES.Config.CACHE_DIR));
+ await makeDir(path.join(container.get(TYPES.Config.CACHE_DIR), 'tmp'));
await sequelize.sync({});
diff --git a/src/services/player.ts b/src/services/player.ts
index 2465a8a..d578704 100644
--- a/src/services/player.ts
+++ b/src/services/player.ts
@@ -140,7 +140,7 @@ export default class {
}
private getCachedPathTemp(url: string): string {
- return path.join('/tmp', hasha(url));
+ return path.join(this.cacheDir, 'tmp', hasha(url));
}
private async isCached(url: string): Promise<boolean> {
diff --git a/yarn.lock b/yarn.lock
index 8086009..78564a1 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -152,40 +152,40 @@
dependencies:
"@types/node" "*"
-"@typescript-eslint/eslint-plugin@^2.23.0":
- version "2.23.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.23.0.tgz#aa7133bfb7b685379d9eafe4ae9e08b9037e129d"
- integrity sha512-8iA4FvRsz8qTjR0L/nK9RcRUN3QtIHQiOm69FzV7WS3SE+7P7DyGGwh3k4UNR2JBbk+Ej2Io+jLAaqKibNhmtw==
+"@typescript-eslint/eslint-plugin@^2.24.0":
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.24.0.tgz#a86cf618c965a462cddf3601f594544b134d6d68"
+ integrity sha512-wJRBeaMeT7RLQ27UQkDFOu25MqFOBus8PtOa9KaT5ZuxC1kAsd7JEHqWt4YXuY9eancX0GK9C68i5OROnlIzBA==
dependencies:
- "@typescript-eslint/experimental-utils" "2.23.0"
+ "@typescript-eslint/experimental-utils" "2.24.0"
eslint-utils "^1.4.3"
functional-red-black-tree "^1.0.1"
regexpp "^3.0.0"
tsutils "^3.17.1"
-"@typescript-eslint/[email protected]":
- version "2.23.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.23.0.tgz#5d2261c8038ec1698ca4435a8da479c661dc9242"
- integrity sha512-OswxY59RcXH3NNPmq+4Kis2CYZPurRU6mG5xPcn24CjFyfdVli5mySwZz/g/xDbJXgDsYqNGq7enV0IziWGXVQ==
+"@typescript-eslint/[email protected]":
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.24.0.tgz#a5cb2ed89fedf8b59638dc83484eb0c8c35e1143"
+ integrity sha512-DXrwuXTdVh3ycNCMYmWhUzn/gfqu9N0VzNnahjiDJvcyhfBy4gb59ncVZVxdp5XzBC77dCncu0daQgOkbvPwBw==
dependencies:
"@types/json-schema" "^7.0.3"
- "@typescript-eslint/typescript-estree" "2.23.0"
+ "@typescript-eslint/typescript-estree" "2.24.0"
eslint-scope "^5.0.0"
-"@typescript-eslint/parser@^2.23.0":
- version "2.23.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.23.0.tgz#f3d4e2928ff647fe77fc2fcef1a3534fee6a3212"
- integrity sha512-k61pn/Nepk43qa1oLMiyqApC6x5eP5ddPz6VUYXCAuXxbmRLqkPYzkFRKl42ltxzB2luvejlVncrEpflgQoSUg==
+"@typescript-eslint/parser@^2.24.0":
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.24.0.tgz#2cf0eae6e6dd44d162486ad949c126b887f11eb8"
+ integrity sha512-H2Y7uacwSSg8IbVxdYExSI3T7uM1DzmOn2COGtCahCC3g8YtM1xYAPi2MAHyfPs61VKxP/J/UiSctcRgw4G8aw==
dependencies:
"@types/eslint-visitor-keys" "^1.0.0"
- "@typescript-eslint/experimental-utils" "2.23.0"
- "@typescript-eslint/typescript-estree" "2.23.0"
+ "@typescript-eslint/experimental-utils" "2.24.0"
+ "@typescript-eslint/typescript-estree" "2.24.0"
eslint-visitor-keys "^1.1.0"
-"@typescript-eslint/[email protected]":
- version "2.23.0"
- resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.23.0.tgz#d355960fab96bd550855488dcc34b9a4acac8d36"
- integrity sha512-pmf7IlmvXdlEXvE/JWNNJpEvwBV59wtJqA8MLAxMKLXNKVRC3HZBXR/SlZLPWTCcwOSg9IM7GeRSV3SIerGVqw==
+"@typescript-eslint/[email protected]":
+ version "2.24.0"
+ resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.24.0.tgz#38bbc8bb479790d2f324797ffbcdb346d897c62a"
+ integrity sha512-RJ0yMe5owMSix55qX7Mi9V6z2FDuuDpN6eR5fzRJrp+8in9UF41IGNQHbg5aMK4/PjVaEQksLvz0IA8n+Mr/FA==
dependencies:
debug "^4.1.1"
eslint-visitor-keys "^1.1.0"
@@ -2962,10 +2962,10 @@ [email protected]:
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
-youtube.ts@^0.1.0:
- version "0.1.0"
- resolved "https://registry.yarnpkg.com/youtube.ts/-/youtube.ts-0.1.0.tgz#9925c59dadf1b9dcf0916aec247667d6cefff6de"
- integrity sha512-1JB3w8oCv2nrTv332cs2VZ5X2tWLJrVlq2m7REMGCQmHLxxr7y0yCFbM+69MzmItCgQ6ThijMYb1w2vDmzq7Uw==
+youtube.ts@^0.1.1:
+ version "0.1.1"
+ resolved "https://registry.yarnpkg.com/youtube.ts/-/youtube.ts-0.1.1.tgz#be5473f58bbc869141039c2cc09038c1b0279bf0"
+ integrity sha512-zzOiI1WAENysG/XOx6p9ATD+nvJYkSM6DG7H41NEzEmx2yLvCyfRtBJAvJ+xPGYJE8rx7QMxg8C/ga4WXCHwag==
dependencies:
axios "^0.19.0"
ytdl-core-discord "^1.1.0"