This commit is contained in:
Michael C
2021-12-20 00:27:09 -05:00
5 changed files with 47 additions and 39 deletions

View File

@@ -1,9 +1,9 @@
worker_processes 4;
worker_rlimit_nofile 400000;
worker_processes 6;
worker_rlimit_nofile 800000;
worker_shutdown_timeout 10;
events {
worker_connections 500000; # Default: 1024
worker_connections 700000; # Default: 1024
}
http {
@@ -21,9 +21,16 @@ http {
types {
text/csv csv;
}
# keepalive settings
keepalive_requests 10;
keepalive_timeout 5;
proxy_http_version 1.1;
proxy_set_header Connection "";
upstream backend_GET {
ip_hash;
keepalive 5;
#server localhost:4441;
#server localhost:4442;
#server localhost:4443;
@@ -32,7 +39,7 @@ http {
#server localhost:4446;
#server localhost:4447;
#server localhost:4448;
server 10.0.0.4:4441;
server 10.0.0.4:4441;
#server 10.0.0.3:4441;
server 10.0.0.3:4442;
@@ -40,8 +47,11 @@ http {
server 10.0.0.5:4441;
server 10.0.0.5:4442;
#server 10.0.0.6:4441;
#server 10.0.0.6:4442;
server 10.0.0.6:4441;
server 10.0.0.6:4442;
#server 10.0.0.8:4441;
#server 10.0.0.8:4442;
#server 134.209.69.251:80 backup;
@@ -60,8 +70,8 @@ http {
upstream backend_db {
server 10.0.0.4:4441;
#server 10.0.0.3:4441;
#server 10.0.0.4;
}
#server 10.0.0.4;
}
upstream backend_db_dl {
server 10.0.0.4;
@@ -109,7 +119,7 @@ http {
#proxy_pass https://sbtest.etcinit.com/;
}
#access_log /etc/nginx/logs/requests.log no_ip;
#access_log /etc/nginx/logs/requests.log no_ip buffer=64k;
location /api/skipSegments {
#return 200 "[]";
@@ -120,11 +130,11 @@ http {
#access_log /etc/nginx/logs/download.log no_ip;
gzip on;
if ($request_method = POST) {
access_log /etc/nginx/logs/submissions.log user_agent;
access_log /etc/nginx/logs/submissions.log user_agent buffer=64k;
}
#proxy_read_timeout 6s;
#proxy_next_upstream error timeout http_500 http_502;
#proxy_next_upstream error timeout http_500 http_502;
}
location /api/getTopUsers {
@@ -135,7 +145,7 @@ http {
location /api/getTotalStats {
proxy_pass http://backend_GET;
proxy_cache CACHEZONE;
proxy_cache CACHEZONE;
proxy_cache_valid 20m;
#return 200 "";
}
@@ -145,15 +155,15 @@ http {
}
location /download/ {
#access_log /etc/nginx/logs/download.log no_ip;
#access_log /etc/nginx/logs/download.log no_ip buffer=64k;
gzip on;
proxy_cache CACHEZONE;
proxy_cache CACHEZONE;
proxy_cache_valid 20m;
#gzip_types text/csv;
#gzip_comp_level 1;
proxy_pass http://backend_db;
#alias /home/sbadmin/sponsor/docker/database-export/;
#alias /home/sbadmin/sponsor/docker/database-export/;
#return 307 https://cdnsponsor.ajay.app$request_uri;
}
location /database {
@@ -196,15 +206,7 @@ http {
ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
}
server {
server_name cdnsponsor.ajay.app;
@@ -228,11 +230,7 @@ http {
ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
}
server {
access_log off;
@@ -281,9 +279,5 @@ http {
ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/privkey.pem; # managed by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
}
}

View File

@@ -109,7 +109,7 @@ function filterSegments(segments: DBSegment[], page: number, filters: Record<str
|| (segment.views < filters.minViews || segment.views > filters.maxViews)
|| (!filters.locked && segment.locked)
|| (!filters.hidden && segment.hidden)
|| (!filters.ignored && (segment.hidden || segment.shadowHidden))
|| (!filters.ignored && ((segment.votes <= -2) || segment.hidden || segment.shadowHidden))
|| (filters.categories.length > 0 && !filters.categories.includes(segment.category)))
// return false if any of the conditions are met
// return true if none of the conditions are met

View File

@@ -70,7 +70,11 @@ export async function setUsername(req: Request, res: Response): Promise<Response
if (row?.userName !== undefined) {
//already exists, update this row
oldUserName = row.userName;
await db.prepare("run", `UPDATE "userNames" SET "userName" = ?, "locked" = ? WHERE "userID" = ?`, [userName, locked, userID]);
if (userName == userID && !locked) {
await db.prepare("run", `DELETE FROM "userNames" WHERE "userID" = ?`, [userID]);
} else {
await db.prepare("run", `UPDATE "userNames" SET "userName" = ?, "locked" = ? WHERE "userID" = ?`, [userName, locked, userID]);
}
} else {
//add to the db
await db.prepare("run", `INSERT INTO "userNames"("userID", "userName", "locked") VALUES(?, ?, ?)`, [userID, userName, locked]);

View File

@@ -120,11 +120,10 @@ describe("getSearchSegments", () => {
assert.strictEqual(res.status, 200);
const data = res.data;
const segments = data.segments;
assert.strictEqual(data.segmentCount, 3);
assert.strictEqual(data.segmentCount, 2);
assert.strictEqual(data.page, 0);
assert.strictEqual(segments[0].UUID, "search-normal");
assert.strictEqual(segments[1].UUID, "search-downvote");
assert.strictEqual(segments[2].UUID, "search-locked");
assert.strictEqual(segments[1].UUID, "search-locked");
done();
})
.catch(err => done(err));

View File

@@ -20,6 +20,7 @@ const user06PrivateUserID = "setUsername_06";
const username06 = "Username 06";
const user07PrivateUserID = "setUsername_07";
const username07 = "Username 07";
const user08PrivateUserID = "setUsername_08";
async function addUsername(userID: string, userName: string, locked = 0) {
await db.prepare("run", 'INSERT INTO "userNames" ("userID", "userName", "locked") VALUES(?, ?, ?)', [userID, userName, locked]);
@@ -231,4 +232,14 @@ describe("setUsername", () => {
})
.catch((err) => done(err));
});
it("Should delete row if new username is same as publicID", (done) => {
const publicID = getHash(user08PrivateUserID);
postSetUserName(getHash(user08PrivateUserID), publicID)
.then(async () => {
const usernameInfo = await getUsernameInfo(getHash(user08PrivateUserID));
assert.strictEqual(usernameInfo, null);
done();
});
});
});