Skip to content

Commit 4abf57b

Browse files
committed
Save casual mode status in db
1 parent 07435b9 commit 4abf57b

File tree

3 files changed

+59
-5
lines changed

3 files changed

+59
-5
lines changed
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
BEGIN TRANSACTION;
2+
3+
ALTER TABLE "titles" ADD "casualMode" INTEGER default 0;
4+
ALTER TABLE "thumbnails" ADD "casualMode" INTEGER default 0;
5+
6+
UPDATE "config" SET value = 41 WHERE key = 'version';
7+
8+
COMMIT;

src/routes/postBranding.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ interface ExistingVote {
3636
}
3737

3838
export async function postBranding(req: Request, res: Response) {
39-
const { videoID, userID, title, thumbnail, autoLock, downvote, videoDuration, wasWarned } = req.body as BrandingSubmission;
39+
const { videoID, userID, title, thumbnail, autoLock, downvote, videoDuration, wasWarned, casualMode } = req.body as BrandingSubmission;
4040
const service = getService(req.body.service);
4141

4242
if (!videoID || !userID || userID.length < 30 || !service
@@ -100,8 +100,8 @@ export async function postBranding(req: Request, res: Response) {
100100
throw new Error("Title submission doesn't exist");
101101
}
102102

103-
await db.prepare("run", `INSERT INTO "titles" ("videoID", "title", "original", "userID", "service", "hashedVideoID", "timeSubmitted", "UUID") VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
104-
[videoID, title.title, title.original ? 1 : 0, hashedUserID, service, hashedVideoID, now, UUID]);
103+
await db.prepare("run", `INSERT INTO "titles" ("videoID", "title", "original", "userID", "service", "hashedVideoID", "timeSubmitted", "UUID", "casualMode") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)`,
104+
[videoID, title.title, title.original ? 1 : 0, hashedUserID, service, hashedVideoID, now, UUID, casualMode ? 1 : 0]);
105105

106106
const verificationValue = await getVerificationValue(hashedUserID, isVip);
107107
await db.prepare("run", `INSERT INTO "titleVotes" ("UUID", "votes", "locked", "shadowHidden", "verification") VALUES (?, 0, ?, ?, ?);`,
@@ -142,8 +142,8 @@ export async function postBranding(req: Request, res: Response) {
142142
throw new Error("Thumbnail submission doesn't exist");
143143
}
144144

145-
await db.prepare("run", `INSERT INTO "thumbnails" ("videoID", "original", "userID", "service", "hashedVideoID", "timeSubmitted", "UUID") VALUES (?, ?, ?, ?, ?, ?, ?)`,
146-
[videoID, thumbnail.original ? 1 : 0, hashedUserID, service, hashedVideoID, now, UUID]);
145+
await db.prepare("run", `INSERT INTO "thumbnails" ("videoID", "original", "userID", "service", "hashedVideoID", "timeSubmitted", "UUID", "casualMode") VALUES (?, ?, ?, ?, ?, ?, ?, ?)`,
146+
[videoID, thumbnail.original ? 1 : 0, hashedUserID, service, hashedVideoID, now, UUID, casualMode ? 1 : 0]);
147147

148148
await db.prepare("run", `INSERT INTO "thumbnailVotes" ("UUID", "votes", "locked", "shadowHidden") VALUES (?, 0, ?, ?)`,
149149
[UUID, shouldLock ? 1 : 0, isBanned ? 1 : 0]);

test/cases/postBranding.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ describe("postBranding", () => {
1515
const userID5 = `PostBrandingUser5${".".repeat(16)}`;
1616
const userID6 = `PostBrandingUser6${".".repeat(16)}`;
1717
const userID7 = `PostBrandingUser7${".".repeat(16)}`;
18+
const userID8 = `PostBrandingUser8${".".repeat(16)}`;
1819
const bannedUser = `BannedPostBrandingUser${".".repeat(16)}`;
1920

2021

@@ -119,6 +120,7 @@ describe("postBranding", () => {
119120

120121
assert.strictEqual(dbTitle.title, title.title);
121122
assert.strictEqual(dbTitle.original, title.original ? 1 : 0);
123+
assert.strictEqual(dbTitle.casualMode, 0);
122124

123125
assert.strictEqual(dbVotes.votes, 0);
124126
assert.strictEqual(dbVotes.locked, 0);
@@ -1133,6 +1135,50 @@ describe("postBranding", () => {
11331135
assert.strictEqual(dbVotes3.verification, 0);
11341136
});
11351137

1138+
it("Submit title and thumbnail with casual mode", async () => {
1139+
const videoID = "postBrandCasual1";
1140+
const title = {
1141+
title: "Some title",
1142+
original: false
1143+
};
1144+
const thumbnail = {
1145+
timestamp: 12.42,
1146+
original: false
1147+
};
1148+
1149+
const res = await postBranding({
1150+
title,
1151+
thumbnail,
1152+
userID: userID5,
1153+
service: Service.YouTube,
1154+
videoID,
1155+
casualMode: true
1156+
});
1157+
1158+
assert.strictEqual(res.status, 200);
1159+
const dbTitle = await queryTitleByVideo(videoID);
1160+
const dbTitleVotes = await queryTitleVotesByUUID(dbTitle.UUID);
1161+
const dbThumbnail = await queryThumbnailByVideo(videoID);
1162+
const dbThumbnailTimestamps = await queryThumbnailTimestampsByUUID(dbThumbnail.UUID);
1163+
const dbThumbnailVotes = await queryThumbnailVotesByUUID(dbThumbnail.UUID);
1164+
1165+
assert.strictEqual(dbTitle.title, title.title);
1166+
assert.strictEqual(dbTitle.original, title.original ? 1 : 0);
1167+
assert.strictEqual(dbTitle.casualMode, 1);
1168+
1169+
assert.strictEqual(dbTitleVotes.votes, 0);
1170+
assert.strictEqual(dbTitleVotes.locked, 0);
1171+
assert.strictEqual(dbTitleVotes.shadowHidden, 0);
1172+
1173+
assert.strictEqual(dbThumbnailTimestamps.timestamp, thumbnail.timestamp);
1174+
assert.strictEqual(dbThumbnail.original, thumbnail.original ? 1 : 0);
1175+
assert.strictEqual(dbThumbnail.casualMode, 1);
1176+
1177+
assert.strictEqual(dbThumbnailVotes.votes, 0);
1178+
assert.strictEqual(dbThumbnailVotes.locked, 0);
1179+
assert.strictEqual(dbThumbnailVotes.shadowHidden, 0);
1180+
});
1181+
11361182
it("Banned users should not be able to vote (custom title)", async () => {
11371183
const videoID = "postBrandBannedCustomVote";
11381184
const title = {

0 commit comments

Comments
 (0)