Compare commits
	
		
			3 Commits
		
	
	
		
			0d3c62c6ad
			...
			b1c581ca6e
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| b1c581ca6e | |||
| 96189c2392 | |||
| 700353cff4 | 
@@ -2,13 +2,13 @@ FROM node:alpine as files
 | 
				
			|||||||
ENV TZ="Europe/Berlin"
 | 
					ENV TZ="Europe/Berlin"
 | 
				
			||||||
WORKDIR /app
 | 
					WORKDIR /app
 | 
				
			||||||
COPY [ "package-lock.json", "package.json", "index.ts", "tsconfig.json", "./" ]
 | 
					COPY [ "package-lock.json", "package.json", "index.ts", "tsconfig.json", "./" ]
 | 
				
			||||||
COPY server ./server
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM files as proddependencies
 | 
					FROM files as proddependencies
 | 
				
			||||||
ENV NODE_ENV=production
 | 
					ENV NODE_ENV=production
 | 
				
			||||||
RUN npm ci --omit=dev
 | 
					RUN npm ci --omit=dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM proddependencies as compile 
 | 
					FROM proddependencies as compile 
 | 
				
			||||||
 | 
					COPY server ./server
 | 
				
			||||||
RUN npm run build
 | 
					RUN npm run build
 | 
				
			||||||
CMD ["npm","run","start"]
 | 
					CMD ["npm","run","start"]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -16,6 +16,7 @@ FROM files as dependencies
 | 
				
			|||||||
RUN npm ci
 | 
					RUN npm ci
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FROM dependencies as test
 | 
					FROM dependencies as test
 | 
				
			||||||
 | 
					COPY server ./server
 | 
				
			||||||
COPY jest.config.js .
 | 
					COPY jest.config.js .
 | 
				
			||||||
COPY tests ./tests
 | 
					COPY tests ./tests
 | 
				
			||||||
RUN npm run test
 | 
					RUN npm run test
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,18 +1,19 @@
 | 
				
			|||||||
module.exports = {
 | 
					module.exports = {
 | 
				
			||||||
  'roots': [
 | 
						'roots': [
 | 
				
			||||||
    '<rootDir>/tests',
 | 
							'<rootDir>/tests',
 | 
				
			||||||
    '<rootDir>/server'
 | 
							'<rootDir>/server'
 | 
				
			||||||
  ],
 | 
						],
 | 
				
			||||||
  'transform': {
 | 
						'transform': {
 | 
				
			||||||
    '^.+\\.tsx?$': 'ts-jest'
 | 
							'^.+\\.tsx?$': 'ts-jest'
 | 
				
			||||||
  },
 | 
						},
 | 
				
			||||||
  'testRegex': '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
 | 
						'testRegex': '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
 | 
				
			||||||
  'moduleFileExtensions': [
 | 
						'setupFiles': ["<rootDir>/tests/testenv.js"],
 | 
				
			||||||
    'ts',
 | 
						'moduleFileExtensions': [
 | 
				
			||||||
    'tsx',
 | 
							'ts',
 | 
				
			||||||
    'js',
 | 
							'tsx',
 | 
				
			||||||
    'jsx',
 | 
							'js',
 | 
				
			||||||
    'json',
 | 
							'jsx',
 | 
				
			||||||
    'node'
 | 
							'json',
 | 
				
			||||||
  ],
 | 
							'node'
 | 
				
			||||||
 | 
						],
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										102
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										102
									
								
								package.json
									
									
									
									
									
								
							@@ -1,52 +1,52 @@
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  "name": "node-jellyfin-discord-bot",
 | 
						"name": "node-jellyfin-discord-bot",
 | 
				
			||||||
  "version": "1.1.3",
 | 
						"version": "1.1.3",
 | 
				
			||||||
  "description": "A discord bot to sync jellyfin accounts with discord roles",
 | 
						"description": "A discord bot to sync jellyfin accounts with discord roles",
 | 
				
			||||||
  "main": "index.js",
 | 
						"main": "index.js",
 | 
				
			||||||
  "license": "MIT",
 | 
						"license": "MIT",
 | 
				
			||||||
  "dependencies": {
 | 
						"dependencies": {
 | 
				
			||||||
    "@discordjs/rest": "^1.7.0",
 | 
							"@discordjs/rest": "^1.7.0",
 | 
				
			||||||
    "@tsconfig/recommended": "^1.0.2",
 | 
							"@tsconfig/recommended": "^1.0.2",
 | 
				
			||||||
    "@types/node": "^18.15.11",
 | 
							"@types/node": "^18.15.11",
 | 
				
			||||||
    "@types/node-cron": "^3.0.7",
 | 
							"@types/node-cron": "^3.0.7",
 | 
				
			||||||
    "@types/request": "^2.48.8",
 | 
							"@types/request": "^2.48.8",
 | 
				
			||||||
    "@types/uuid": "^9.0.1",
 | 
							"@types/uuid": "^9.0.1",
 | 
				
			||||||
    "axios": "^1.3.5",
 | 
							"axios": "^1.3.5",
 | 
				
			||||||
    "date-fns": "^2.29.3",
 | 
							"date-fns": "^2.29.3",
 | 
				
			||||||
    "date-fns-tz": "^2.0.0",
 | 
							"date-fns-tz": "^2.0.0",
 | 
				
			||||||
    "discord-api-types": "^0.37.38",
 | 
							"discord-api-types": "^0.37.38",
 | 
				
			||||||
    "discord.js": "^14.9.0",
 | 
							"discord.js": "^14.9.0",
 | 
				
			||||||
    "dotenv": "^16.0.3",
 | 
							"dotenv": "^16.0.3",
 | 
				
			||||||
    "jellyfin-apiclient": "^1.10.0",
 | 
							"jellyfin-apiclient": "^1.10.0",
 | 
				
			||||||
    "node-cron": "^3.0.2",
 | 
							"node-cron": "^3.0.2",
 | 
				
			||||||
    "sqlite3": "^5.1.6",
 | 
							"sqlite3": "^5.1.6",
 | 
				
			||||||
    "ts-node": "^10.9.1",
 | 
							"ts-node": "^10.9.1",
 | 
				
			||||||
    "typescript": "^5.0.4",
 | 
							"typescript": "^5.0.4",
 | 
				
			||||||
    "uuid": "^9.0.0",
 | 
							"uuid": "^9.0.0",
 | 
				
			||||||
    "winston": "^3.8.2"
 | 
							"winston": "^3.8.2"
 | 
				
			||||||
  },
 | 
						},
 | 
				
			||||||
  "scripts": {
 | 
						"scripts": {
 | 
				
			||||||
    "build": "tsc",
 | 
							"build": "tsc",
 | 
				
			||||||
    "buildwatch": "tsc --watch",
 | 
							"buildwatch": "tsc --watch",
 | 
				
			||||||
    "clean": "rimraf build",
 | 
							"clean": "rimraf build",
 | 
				
			||||||
    "start": "node build/index.js",
 | 
							"start": "node build/index.js",
 | 
				
			||||||
    "debuggable": "node build/index.js --inspect-brk",
 | 
							"debuggable": "node build/index.js --inspect-brk",
 | 
				
			||||||
    "monitor": "nodemon build/index.js",
 | 
							"monitor": "nodemon build/index.js",
 | 
				
			||||||
    "lint": "eslint . --ext .ts",
 | 
							"lint": "eslint . --ext .ts",
 | 
				
			||||||
    "lint-fix": "eslint . --ext .ts --fix",
 | 
							"lint-fix": "eslint . --ext .ts --fix",
 | 
				
			||||||
    "test": "jest",
 | 
							"test": "jest --runInBand",
 | 
				
			||||||
    "test-watch": "jest --watch"
 | 
							"test-watch": "jest --watch"
 | 
				
			||||||
  },
 | 
						},
 | 
				
			||||||
  "devDependencies": {
 | 
						"devDependencies": {
 | 
				
			||||||
    "@types/jest": "^29.5.2",
 | 
							"@types/jest": "^29.5.2",
 | 
				
			||||||
    "@typescript-eslint/eslint-plugin": "^5.58.0",
 | 
							"@typescript-eslint/eslint-plugin": "^5.58.0",
 | 
				
			||||||
    "@typescript-eslint/parser": "^5.58.0",
 | 
							"@typescript-eslint/parser": "^5.58.0",
 | 
				
			||||||
    "eslint": "^8.38.0",
 | 
							"eslint": "^8.38.0",
 | 
				
			||||||
    "jest": "^29.5.0",
 | 
							"jest": "^29.5.0",
 | 
				
			||||||
    "jest-cli": "^29.5.0",
 | 
							"jest-cli": "^29.5.0",
 | 
				
			||||||
    "mockdate": "^3.0.5",
 | 
							"mockdate": "^3.0.5",
 | 
				
			||||||
    "nodemon": "^2.0.22",
 | 
							"nodemon": "^2.0.22",
 | 
				
			||||||
    "rimraf": "^5.0.0",
 | 
							"rimraf": "^5.0.0",
 | 
				
			||||||
    "ts-jest": "^29.1.0"
 | 
							"ts-jest": "^29.1.0"
 | 
				
			||||||
  }
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										15
									
								
								tests/testenv.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								tests/testenv.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					process.env.CLIENT_ID = "CLIENT_ID"
 | 
				
			||||||
 | 
					process.env.SECRET = "SECRET"
 | 
				
			||||||
 | 
					process.env.BOT_TOKEN = "BOT_TOKEN"
 | 
				
			||||||
 | 
					process.env.WATCHER_ROLE = "WATCHER_ROLE"
 | 
				
			||||||
 | 
					process.env.ADMIN_ROLE = "ADMIN_ROLE"
 | 
				
			||||||
 | 
					process.env.CHANNEL_ID = "CHANNEL_ID"
 | 
				
			||||||
 | 
					process.env.WATCHPARTY_ANNOUNCEMENT_ROLE = "WATCHPARTY_ANNOUNCEMENT_ROLE"
 | 
				
			||||||
 | 
					process.env.YAVIN_JELLYFIN_URL = "YAVIN_JELLYFIN_URL"
 | 
				
			||||||
 | 
					process.env.YAVIN_COLLECTION_ID = "YAVIN_COLLECTION_ID"
 | 
				
			||||||
 | 
					process.env.YAVIN_COLLECTION_USER = "YAVIN_COLLECTION_USER"
 | 
				
			||||||
 | 
					process.env.YAVIN_TOKEN = "YAVIN_TOKEN"
 | 
				
			||||||
 | 
					process.env.TOKEN = "TOKEN"
 | 
				
			||||||
 | 
					process.env.JELLYFIN_USER = "JELLYFIN_USER"
 | 
				
			||||||
 | 
					process.env.JELLYFIN_COLLECTION_ID = "JELLYFIN_COLLECTION_ID"
 | 
				
			||||||
 | 
					process.env.JELLYFIN_URL = "JELLYFIN_URL"
 | 
				
			||||||
		Reference in New Issue
	
	Block a user