на релиз

This commit is contained in:
uniknow 2024-07-30 22:15:44 +04:00
parent 8286b61597
commit d05c386e77
20 changed files with 399 additions and 70 deletions

5
.dockerignore Normal file
View file

@ -0,0 +1,5 @@
node_modules
build
.git
.gitignore
.svelte-kit

5
.env Normal file
View file

@ -0,0 +1,5 @@
# at the end without /
PUBLIC_URL="https://docs.black-phoenix.ru"
#websocket
PUBLIC_WSS="wss://docs.black-phoenix.ru"

2
.gitignore vendored
View file

@ -3,8 +3,6 @@ node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

19
docker/Dockerfile Normal file
View file

@ -0,0 +1,19 @@
FROM node:alpine AS build
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
FROM nginx:stable-alpine
COPY --from=build /build /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

10
docker/docker-compose.yml Normal file
View file

@ -0,0 +1,10 @@
services:
vrot_end:
image: vrot_end
container_name: vrot_end
build:
context: ..
dockerfile: docker/Dockerfile
env_file:
- ../.env
restart: always

13
docker/nginx.conf Normal file
View file

@ -0,0 +1,13 @@
server {
listen 3000:
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html = 404;
}
include /etc/nginx/extra-conf.d*.conf;
}

255
package-lock.json generated
View file

@ -23,6 +23,7 @@
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^5.2.0",
"@sveltejs/kit": "^2.0.0",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/node": "^20.11.16",
@ -791,6 +792,178 @@
"url": "https://opencollective.com/popperjs"
}
},
"node_modules/@rollup/plugin-commonjs": {
"version": "26.0.1",
"resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-26.0.1.tgz",
"integrity": "sha512-UnsKoZK6/aGIH6AdkptXhNvhaqftcjq3zZdT+LY5Ftms6JR06nADcDsYp5hTU9E2lbJUEOhdlY5J4DNTneM+jQ==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"commondir": "^1.0.1",
"estree-walker": "^2.0.2",
"glob": "^10.4.1",
"is-reference": "1.2.1",
"magic-string": "^0.30.3"
},
"engines": {
"node": ">=16.0.0 || 14 >= 14.17"
},
"peerDependencies": {
"rollup": "^2.68.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/brace-expansion": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0"
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
"node_modules/@rollup/plugin-commonjs/node_modules/glob": {
"version": "10.4.5",
"resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
"integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
"dev": true,
"dependencies": {
"foreground-child": "^3.1.0",
"jackspeak": "^3.1.2",
"minimatch": "^9.0.4",
"minipass": "^7.1.2",
"package-json-from-dist": "^1.0.0",
"path-scurry": "^1.11.1"
},
"bin": {
"glob": "dist/esm/bin.mjs"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/is-reference": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-reference/-/is-reference-1.2.1.tgz",
"integrity": "sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==",
"dev": true,
"dependencies": {
"@types/estree": "*"
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/jackspeak": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
"integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
"dev": true,
"dependencies": {
"@isaacs/cliui": "^8.0.2"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
},
"optionalDependencies": {
"@pkgjs/parseargs": "^0.11.0"
}
},
"node_modules/@rollup/plugin-commonjs/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true,
"dependencies": {
"brace-expansion": "^2.0.1"
},
"engines": {
"node": ">=16 || 14 >=14.17"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@rollup/plugin-json": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/@rollup/plugin-json/-/plugin-json-6.1.0.tgz",
"integrity": "sha512-EGI2te5ENk1coGeADSIwZ7G2Q8CJS2sF120T7jLw4xFw9n7wIOXHo+kIYRAoVpJAN+kmqZSoO3Fp4JtoNF4ReA==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.1.0"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/plugin-node-resolve": {
"version": "15.2.3",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.2.3.tgz",
"integrity": "sha512-j/lym8nf5E21LwBT4Df1VD6hRO2L2iwUeUmP7litikRsVp1H6NWx20NEp0Y7su+7XGc476GnXXc4kFeZNGmaSQ==",
"dev": true,
"dependencies": {
"@rollup/pluginutils": "^5.0.1",
"@types/resolve": "1.20.2",
"deepmerge": "^4.2.2",
"is-builtin-module": "^3.2.1",
"is-module": "^1.0.0",
"resolve": "^1.22.1"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^2.78.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz",
"integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==",
"dev": true,
"dependencies": {
"@types/estree": "^1.0.0",
"estree-walker": "^2.0.2",
"picomatch": "^2.3.1"
},
"engines": {
"node": ">=14.0.0"
},
"peerDependencies": {
"rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
},
"peerDependenciesMeta": {
"rollup": {
"optional": true
}
}
},
"node_modules/@rollup/pluginutils/node_modules/estree-walker": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
"integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
"node_modules/@rollup/rollup-android-arm-eabi": {
"version": "4.17.2",
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.17.2.tgz",
@ -1016,6 +1189,21 @@
"@sveltejs/kit": "^2.0.0"
}
},
"node_modules/@sveltejs/adapter-node": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/@sveltejs/adapter-node/-/adapter-node-5.2.0.tgz",
"integrity": "sha512-HVZoei2078XSyPmvdTHE03VXDUD0ytTvMuMHMQP0j6zX4nPDpCcKrgvU7baEblMeCCMdM/shQvstFxOJPQKlUQ==",
"dev": true,
"dependencies": {
"@rollup/plugin-commonjs": "^26.0.1",
"@rollup/plugin-json": "^6.1.0",
"@rollup/plugin-node-resolve": "^15.2.3",
"rollup": "^4.9.5"
},
"peerDependencies": {
"@sveltejs/kit": "^2.4.0"
}
},
"node_modules/@sveltejs/kit": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/@sveltejs/kit/-/kit-2.5.0.tgz",
@ -1142,6 +1330,12 @@
"integrity": "sha512-Sk/uYFOBAB7mb74XcpizmH0KOR2Pv3D2Hmrh1Dmy5BmK3MpdSa5kqZcg6EKBdklU0bFXX9gCfzvpnyUehrPIuA==",
"dev": true
},
"node_modules/@types/resolve": {
"version": "1.20.2",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.20.2.tgz",
"integrity": "sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==",
"dev": true
},
"node_modules/@types/websocket": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/@types/websocket/-/websocket-1.0.10.tgz",
@ -1434,6 +1628,18 @@
"node": ">=6.14.2"
}
},
"node_modules/builtin-modules": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
"integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true,
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/camelcase-css": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/camelcase-css/-/camelcase-css-2.0.1.tgz",
@ -1528,6 +1734,12 @@
"node": ">= 6"
}
},
"node_modules/commondir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
"integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@ -2212,6 +2424,21 @@
"node": ">=8"
}
},
"node_modules/is-builtin-module": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz",
"integrity": "sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A==",
"dev": true,
"dependencies": {
"builtin-modules": "^3.3.0"
},
"engines": {
"node": ">=6"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-core-module": {
"version": "2.13.1",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz",
@ -2252,6 +2479,12 @@
"node": ">=0.10.0"
}
},
"node_modules/is-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
"integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
"dev": true
},
"node_modules/is-number": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
@ -2440,9 +2673,9 @@
}
},
"node_modules/minipass": {
"version": "7.0.4",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz",
"integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==",
"version": "7.1.2",
"resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
"integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
"dev": true,
"engines": {
"node": ">=16 || 14 >=14.17"
@ -2584,6 +2817,12 @@
"wrappy": "1"
}
},
"node_modules/package-json-from-dist": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.0.tgz",
"integrity": "sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==",
"dev": true
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
@ -2609,16 +2848,16 @@
"dev": true
},
"node_modules/path-scurry": {
"version": "1.10.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz",
"integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==",
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
"integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
"dev": true,
"dependencies": {
"lru-cache": "^9.1.1 || ^10.0.0",
"lru-cache": "^10.2.0",
"minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
},
"engines": {
"node": ">=16 || 14 >=14.17"
"node": ">=16 || 14 >=14.18"
},
"funding": {
"url": "https://github.com/sponsors/isaacs"

View file

@ -12,6 +12,7 @@
},
"devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0",
"@sveltejs/adapter-node": "^5.2.0",
"@sveltejs/kit": "^2.0.0",
"@sveltejs/vite-plugin-svelte": "^3.0.0",
"@types/node": "^20.11.16",

View file

@ -1,10 +1,9 @@
// import formatDistanceToNow from 'date-fns/formatDistanceToNow';
// import ruLocale from 'date-fns/locale/ru';
import { PUBLIC_URL } from '$env/static/public';
export async function getLastMessages(chatId,msgLoaded){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/get_some_messages/${chatId}?messages_loaded=${msgLoaded}&messages_to_get=15`,
const response = await fetch(`${PUBLIC_URL}/api/chat/get_some_messages/${chatId}?messages_loaded=${msgLoaded}&messages_to_get=15`,
{
method:'GET',
credentials:'include',
@ -37,7 +36,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function getMessageById(chatId,msgId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/chat/message/${chatId}?message_id=${msgId}`,{
const response = await fetch(`${PUBLIC_URL}/chat/message/${chatId}?message_id=${msgId}`,{
method:"GET",
credentials:'include',
headers: {'Authorization': token },
@ -61,7 +60,7 @@ export async function getLastMessages(chatId,msgLoaded){
const DataForm = new FormData();
DataForm.append('file', messagePic)
const response = await fetch('https://docs.black-phoenix.ru/api/images/upload_image',
const response = await fetch('${PUBLIC_URL}/api/images/upload_image',
{
method:"POST",
body:DataForm,
@ -83,7 +82,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function getAllChats(){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/api/chat`,
const response = await fetch(`${PUBLIC_URL}/api/chat`,
{
method:"GET",
credentials:'include',
@ -110,7 +109,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function getPinnedMsg(ID){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/pinned_messages/${ID}`,{
const response = await fetch(`${PUBLIC_URL}/api/chat/pinned_messages/${ID}`,{
method:"GET",
credentials:'include',
headers: {'Authorization': token },
@ -127,7 +126,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function pinMessage(chatId,messageId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/pinn_message?chat_id=${chatId}&message_id=${messageId}`,{
const response = await fetch(`${PUBLIC_URL}/api/chat/pinn_message?chat_id=${chatId}&message_id=${messageId}`,{
method:"POST",
credentials:'include',
headers: {'Authorization': token },
@ -143,7 +142,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function unpinMessage(chatId, messageId){
let token = localStorage.getItem('BPChat')
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/unpinn_message?chat_id=${chatId}&message_id=${messageId}`,{
const response = await fetch(`${PUBLIC_URL}/api/chat/unpinn_message?chat_id=${chatId}&message_id=${messageId}`,{
method:"DELETE",
credentials:'include',
headers: {'Authorization': token },
@ -162,7 +161,7 @@ export async function getLastMessages(chatId,msgLoaded){
const formData = new FormData();
formData.append('file', image);
const response = await fetch('https://docs.black-phoenix.ru/api/images/upload_image', {
const response = await fetch(`${PUBLIC_URL}/api/images/upload_image`, {
method: 'POST',
credentials: 'include',
body: formData,
@ -179,7 +178,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function getAllUsers(nameToFind){
const response = await fetch(`https://docs.black-phoenix.ru/api/users?username=${nameToFind}`,{
const response = await fetch(`${PUBLIC_URL}/api/users?username=${nameToFind}`,{
method:"GET",
credentials:'include'
})
@ -198,7 +197,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function createNewChat(chatName, excludeUser, token){
console.log(token, "token")
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/create_chat?user_to_exclude=${excludeUser}&chat_name=${chatName}`,{
const response = await fetch(`${PUBLIC_URL}/api/chat/create_chat?user_to_exclude=${excludeUser}&chat_name=${chatName}`,{
method: 'POST',
credentials: 'include',
headers: {'Authorization': token },
@ -217,7 +216,7 @@ export async function getLastMessages(chatId,msgLoaded){
export async function deleteChat(chatId, token){
const response = await fetch(`https://docs.black-phoenix.ru/api/chat/delete_chat/${chatId}`,{
const response = await fetch(`${PUBLIC_URL}/api/chat/delete_chat/${chatId}`,{
method: 'DELETE',
credentials: 'include',
headers: {'Authorization': token },

View file

@ -1 +0,0 @@
// place files you want to import through the `$lib` alias in this folder.

View file

@ -1,6 +1,8 @@
import { PUBLIC_URL } from '$env/static/public';
export async function handleLogin(username, password) {
const response = await fetch('https://docs.black-phoenix.ru/api/users/login', {
const response = await fetch(`${PUBLIC_URL}/api/users/login`, {
method: 'POST',
credentials:'include',
headers: {

View file

@ -1,5 +1,7 @@
import { PUBLIC_URL } from '$env/static/public';
export async function checkExsistingUser(username, email) {
const response = await fetch('https://docs.black-phoenix.ru/api/users/check_existing_user', {
const response = await fetch(`${PUBLIC_URL}/api/users/check_existing_user`, {
method:'POST',
credentials:"include",
headers:{
@ -27,7 +29,7 @@ export async function checkExsistingUser(username, email) {
}
export async function VerificationEmail(token, Code){
const response = await fetch('https://docs.black-phoenix.ru/api/users/email_verification',{
const response = await fetch(`${PUBLIC_URL}/api/users/email_verification`,{
method:'POST',
credentials:'include',
headers:{
@ -49,7 +51,7 @@ export async function VerificationEmail(token, Code){
}
export async function resendVerification(token){
const response = await fetch(`https://docs.black-phoenix.ru/api/users/resend_email_verification`,{
const response = await fetch(`${PUBLIC_URL}/api/users/resend_email_verification`,{
method:'POST',
credentials:'include',
headers: {'Authorization': token }
@ -64,7 +66,7 @@ export async function resendVerification(token){
}
export async function handleRegister(username,password,password2,email,date_of_birth){
const response = await fetch('https://docs.black-phoenix.ru/api/users/register',{
const response = await fetch(`${PUBLIC_URL}/api/users/register`,{
method:'POST',
credentials:"include",
headers:{ 'Content-Type': 'application/json' },

View file

@ -1,6 +1,8 @@
import { PUBLIC_URL } from '$env/static/public';
export async function getAvatarHistory(token){
let response = await fetch(`https://docs.black-phoenix.ru/api/users/avatars`,{
let response = await fetch(`${PUBLIC_URL}/api/users/avatars`,{
method: 'GET',
credentials:'include',
headers: {'Authorization': token },
@ -18,7 +20,7 @@ export async function getAvatarHistory(token){
export async function getConfirmationCode(token, email){
console.log(token, email, "<-- лох")
const response = await fetch(`https://docs.black-phoenix.ru/api/users/send_confirmation_code`,{
const response = await fetch(`${PUBLIC_URL}/api/users/send_confirmation_code`,{
method: 'POST',
credentials:'include',
headers: { 'Content-Type': 'application/json',
@ -34,7 +36,7 @@ export async function getConfirmationCode(token, email){
}
export async function changeUserData(token, username, email, password, avatar, code){
let response = await fetch(`https://docs.black-phoenix.ru/api/users/change_data`,{
let response = await fetch(`${PUBLIC_URL}/api/users/change_data`,{
method: 'POST',
credentials:'include',

View file

@ -1,7 +1,9 @@
import { PUBLIC_URL } from '$env/static/public';
export async function UserCheck(){
let token = localStorage.getItem('BPChat')
const response = await fetch('https://docs.black-phoenix.ru/api/users/me', {
const response = await fetch(`${PUBLIC_URL}/api/users/me`, {
method: 'GET',
credentials:'include',
headers: {'Authorization': token },

15
src/routes/+page.svelte Normal file
View file

@ -0,0 +1,15 @@
<script>
import { onMount } from 'svelte';
location.assign('/login')
</script>
<style>
</style>
<body>
<h2>
fdsadf
</h2>
</body>

View file

@ -90,7 +90,7 @@
console.log(nName, nEmail,nPassword,newAvatar)
let changing = afterChanging = await changeUserData(token, nName, nEmail, nPassword, newAvatar, code)
console.log(changing)
if (changing == true){
showSubmitDiv = false
location.reload()

View file

@ -10,6 +10,8 @@
import formatDistanceToNow from 'date-fns/formatDistanceToNow';
import ruLocale from 'date-fns/locale/ru';
import { PUBLIC_WSS } from '$env/static/public';
console.clear();
@ -33,7 +35,6 @@
let answerMessageImgShow = false
let imageFile = undefined
let imageShow = false;
$: console.log(imageFile, "картинка")
let answerMessage = ""
let answerMessageImg = ""
@ -80,9 +81,8 @@
pinnedMsg = await getPinnedMsg(chatId)
token = localStorage.getItem('BPChat')
const websocketUrl = `wss://docs.black-phoenix.ru/api/chat/ws/${chatId}`
const websocketUrl = `${PUBLIC_WSS}/api/chat/ws/${chatId}`
console.log(socket)
if (socket){
console.log("Сокет есть")
socket.close();
@ -91,25 +91,22 @@
let tokenForSocket = token.split(" ")[1];
socket = createWebSocket(websocketUrl, tokenForSocket, async (message) => {
console.log(message, "сообщение!!!!!")
//console.log(message, "сообщение!!!!!")
if(message.flag === "pin" ){
console.log("ЗАКРЕП!!!!!!!!!!!")
//console.log("ЗАКРЕП!!!!!!!!!!!")
pinnedMsg = [message, ...pinnedMsg]
}
else if(message.flag === "delete"){
let messageToDelete = messages.findIndex(msg => msg.id === message.id)
console.log(messageToDelete, "индекс сообщения, которое нужно делитнуть")
messages.splice(messageToDelete,1)
messages = messages
console.log(messages," сообщения после удаления")
} else if(message.flag === "unpin"){
const indexOfMassive = pinnedMsg.findIndex(msg => msg.id == message.id)
console.log(indexOfMassive)
pinnedMsg.splice(indexOfMassive, 1)
pinnedMsg = pinnedMsg
@ -141,7 +138,7 @@
}
if((messageText != "") || image != null){
console.log(`${messageText} - текст, ${image} - картинка`)
//console.log(`${messageText} - текст, ${image} - картинка`)
if(messageText == "жопа"){
messageText = "жопа съела трусы O.O"
image = "https://images.black-phoenix.ru/static/images/images/%D0%B6%D0%BE%D0%BF%D0%B0%20%D1%81%D1%8A%D0%B5%D0%BB%D0%B0%20%D1%82%D1%80%D1%83%D1%81%D1%8B.jpg"
@ -166,8 +163,8 @@
} else {
console.log("ноуп" )
console.log(socket)
console.log("ноуп")
//console.log(socket)
}
}
@ -176,7 +173,7 @@
function onEnterPress(event) {
if (event.key === "Enter" && !event.shiftKey) {
event.preventDefault();
console.log("нажата ", messageText)
//console.log("нажата ", messageText)
if(!isLoaded)
sendMessage()
}
@ -218,7 +215,7 @@ let pinOrNot = false
function helperDivShow(event, id, text, img, username) {
if(pinnedMsg != null){
pinOrNot = pinnedMsg.some(msg => msg.id == id)
console.log(pinOrNot)
//console.log(pinOrNot)
}
if (helperDiv) {
@ -239,7 +236,7 @@ let pinOrNot = false
const y = event.clientY;
helperDiv.style.left = `${x}px`;
helperDiv.style.top = `${y}px`;
console.log(x, y);
//console.log(x, y);
}
};
@ -260,13 +257,13 @@ let pinOrNot = false
answerMessage = PickedText
answerMessageImg = PickedImg
console.log(answerMessage, answerMessageImg)
//console.log(answerMessage, answerMessageImg)
answer = pickedId
if(answerMessage != "")
answerMessageTextShow = true
if(answerMessageImg != null)
answerMessageImgShow = true
console.log(answerMessageTextShow, answerMessageImgShow)
//console.log(answerMessageTextShow, answerMessageImgShow)
}
async function pinFunc(event){
@ -339,7 +336,6 @@ let pinOrNot = false
}
let oldScrollHeight = null;
$: console.log(oldScrollHeight, "старый скорлл")
let uploadingNewMsg = true
async function handleScroll(event) {
@ -371,12 +367,11 @@ let pinOrNot = false
let newChatName = ""
let selectedUserId = "";
let users = []
$:console.log(selectedUserId)
async function startingCreateNewChat(){
createNewChatShow = true
users = await getAllUsers(nameToFind)
console.log(users)
//console.log(users)
}
async function submtiCreateNewChat(){
@ -402,10 +397,10 @@ let pinOrNot = false
}
async function lisinerNameToFine(event){
console.log(event.target.value)
//console.log(event.target.value)
nameToFind = event.target.value
users = await getAllUsers(nameToFind)
console.log(users)
//console.log(users)
}
let msgTime
@ -427,8 +422,8 @@ let pinOrNot = false
let result = await deleteChat(chatId,token)
const index = chats.findIndex(chat => chat.chat_id === chatId);
chats.splice(index, 1);
console.log(index)
console.log(result)
//console.log(index)
//console.log(result)
chats = await getAllChats()
}
</script>

View file

@ -3,7 +3,7 @@
import { handleLogin } from '$lib/login';
import { onMount } from 'svelte';
import { fly, blur } from 'svelte/transition';
import { cubicOut, backInOut } from 'svelte/easing';
import { cubicOut, backInOut } from 'svelte/easing';
let username = ''
let password = ''
@ -58,7 +58,6 @@
hi = His[Math.floor(Math.random() * (His.length - 0))];
let loadingPage = false;
onMount(() => {
loadingPage = !loadingPage;
});
@ -66,11 +65,11 @@
</script>
{#if loadingPage === true}
{#if loadingPage == true}
<body>
<div class="loginField">
<div class="loginMainDiv">
<div class="loginDiv" transition:fly={{ y: -1920, duration: 1000, backInOut }}>
<div class="loginDiv" transition:blur={{ duration: 800 }}>
<div class="noiseGif">
<div class="marginDiv">
@ -107,7 +106,7 @@
</div>
</div>
</div>
<div class="regDiv" transition:fly={{ y: -1920, duration: 800, backInOut }}>
<div class="regDiv" transition:blur={{ delay:300, duration: 800 }}>
<div class="noiseGif">
<div class="regregDiv">
<h2 class="reg1">Нет аккаунта? Лох!</h2>
@ -121,8 +120,11 @@
<div class="previewField">
<div class="previewCenter">
<h2 transition:blur={{delay:300, duration: 1000 }}>BP Chat</h2>
<img class="ImgOnRight" src="./BPytka.png" alt="птичка" transition:fly={{ y: -1920, duration: 1200, backInOut }}>
<h2 transition:fly={{ y: -1920, delay: 400, duration: 1200 }}>BP Chat</h2>
<div class="imgOnRightDiv">
<img class="imgOnRight" src="./BPytka.png" alt="птичка" transition:fly={{ y: -1920, delay: 300, duration: 1200 }}>
<img class="imgOnRightLight" src="./BPytka.png" alt="птичка" transition:blur={{ delay: 900, duration: 1200 }}>
</div>
</div>
</div>
</body>
@ -130,16 +132,39 @@
<style lang="scss">
.imgOnRightDiv{
width: 100%;
height: 40%;
display: flex;
justify-content: center;
align-items: center;
//background-color: red;
}
.previewCenter{
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
height: 100%;
}
.ImgOnRight{
width: 60%;
.imgOnRight,
.imgOnRightLight{
width: 25%;
}
.imgOnRight{
width: 25%;
position: absolute;
z-index: 5;
}
.imgOnRightLight{
position: absolute;
filter: blur(15px);
z-index: 4;
}
.greetingsDiv{

View file

@ -15,9 +15,7 @@
if(codeExist == true){
code = window.location.hash.slice(6);
console.log(code)
verifAnswer = await VerificationEmail(token, code)
console.log(verifAnswer)
if(verifAnswer == false){
}
}

View file

@ -1,5 +1,5 @@
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte';
import adapter from '@sveltejs/adapter-auto';
import adapter from '@sveltejs/adapter-node';
/** @type {import('@sveltejs/kit').Config} */
const config = {