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_processes 6;
worker_rlimit_nofile 400000; worker_rlimit_nofile 800000;
worker_shutdown_timeout 10; worker_shutdown_timeout 10;
events { events {
worker_connections 500000; # Default: 1024 worker_connections 700000; # Default: 1024
} }
http { http {
@@ -21,9 +21,16 @@ http {
types { types {
text/csv csv; text/csv csv;
} }
# keepalive settings
keepalive_requests 10;
keepalive_timeout 5;
proxy_http_version 1.1;
proxy_set_header Connection "";
upstream backend_GET { upstream backend_GET {
ip_hash; ip_hash;
keepalive 5;
#server localhost:4441; #server localhost:4441;
#server localhost:4442; #server localhost:4442;
#server localhost:4443; #server localhost:4443;
@@ -40,8 +47,11 @@ http {
server 10.0.0.5:4441; server 10.0.0.5:4441;
server 10.0.0.5:4442; server 10.0.0.5:4442;
#server 10.0.0.6:4441; server 10.0.0.6:4441;
#server 10.0.0.6:4442; 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; #server 134.209.69.251:80 backup;
@@ -109,7 +119,7 @@ http {
#proxy_pass https://sbtest.etcinit.com/; #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 { location /api/skipSegments {
#return 200 "[]"; #return 200 "[]";
@@ -120,7 +130,7 @@ http {
#access_log /etc/nginx/logs/download.log no_ip; #access_log /etc/nginx/logs/download.log no_ip;
gzip on; gzip on;
if ($request_method = POST) { 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_read_timeout 6s;
@@ -145,7 +155,7 @@ http {
} }
location /download/ { location /download/ {
#access_log /etc/nginx/logs/download.log no_ip; #access_log /etc/nginx/logs/download.log no_ip buffer=64k;
gzip on; gzip on;
proxy_cache CACHEZONE; proxy_cache CACHEZONE;
proxy_cache_valid 20m; proxy_cache_valid 20m;
@@ -196,15 +206,7 @@ http {
ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/privkey.pem; # managed by Certbot 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 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
}
server { server {
server_name cdnsponsor.ajay.app; 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 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 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}
}
server { server {
access_log off; access_log off;
@@ -281,9 +279,5 @@ http {
ssl_certificate_key /etc/letsencrypt/live/sponsor.ajay.app-0001/privkey.pem; # managed by Certbot 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 include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # 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) || (segment.views < filters.minViews || segment.views > filters.maxViews)
|| (!filters.locked && segment.locked) || (!filters.locked && segment.locked)
|| (!filters.hidden && segment.hidden) || (!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))) || (filters.categories.length > 0 && !filters.categories.includes(segment.category)))
// return false if any of the conditions are met // return false if any of the conditions are met
// return true if none 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) { if (row?.userName !== undefined) {
//already exists, update this row //already exists, update this row
oldUserName = row.userName; oldUserName = row.userName;
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]); await db.prepare("run", `UPDATE "userNames" SET "userName" = ?, "locked" = ? WHERE "userID" = ?`, [userName, locked, userID]);
}
} else { } else {
//add to the db //add to the db
await db.prepare("run", `INSERT INTO "userNames"("userID", "userName", "locked") VALUES(?, ?, ?)`, [userID, userName, locked]); 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); assert.strictEqual(res.status, 200);
const data = res.data; const data = res.data;
const segments = data.segments; const segments = data.segments;
assert.strictEqual(data.segmentCount, 3); assert.strictEqual(data.segmentCount, 2);
assert.strictEqual(data.page, 0); assert.strictEqual(data.page, 0);
assert.strictEqual(segments[0].UUID, "search-normal"); assert.strictEqual(segments[0].UUID, "search-normal");
assert.strictEqual(segments[1].UUID, "search-downvote"); assert.strictEqual(segments[1].UUID, "search-locked");
assert.strictEqual(segments[2].UUID, "search-locked");
done(); done();
}) })
.catch(err => done(err)); .catch(err => done(err));

View File

@@ -20,6 +20,7 @@ const user06PrivateUserID = "setUsername_06";
const username06 = "Username 06"; const username06 = "Username 06";
const user07PrivateUserID = "setUsername_07"; const user07PrivateUserID = "setUsername_07";
const username07 = "Username 07"; const username07 = "Username 07";
const user08PrivateUserID = "setUsername_08";
async function addUsername(userID: string, userName: string, locked = 0) { async function addUsername(userID: string, userName: string, locked = 0) {
await db.prepare("run", 'INSERT INTO "userNames" ("userID", "userName", "locked") VALUES(?, ?, ?)', [userID, userName, locked]); await db.prepare("run", 'INSERT INTO "userNames" ("userID", "userName", "locked") VALUES(?, ?, ?)', [userID, userName, locked]);
@@ -231,4 +232,14 @@ describe("setUsername", () => {
}) })
.catch((err) => done(err)); .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();
});
});
}); });