The realtime connection now carries the IMVU chats a client is in: the hub tells each proxy in a chat which other T5DE users are there and what community products they wear (adult products only to adult accounts), on joining and on every change. Rooms T5DE users enter are looked up on IMVU; those that are public, listed and whose owner turned on "List my public rooms" appear on the new Rooms page, with the T5DE users in them who show they're online. AP rooms are shown to adults only. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
7db9fc0370
commit
6ba4d83317
18 files changed
+1838
-50
No files matched your search
@@ -0,0 +1,19 @@
|
||||
CREATE TABLE "room" (
|
||||
"instance_id" text PRIMARY KEY NOT NULL,
|
||||
"owner_imvu_id" bigint NOT NULL,
|
||||
"name" text NOT NULL,
|
||||
"description" text DEFAULT '' NOT NULL,
|
||||
"image_url" text DEFAULT '' NOT NULL,
|
||||
"privacy" text NOT NULL,
|
||||
"type" text NOT NULL,
|
||||
"content_rating" text DEFAULT '' NOT NULL,
|
||||
"access_pass" boolean DEFAULT false NOT NULL,
|
||||
"occupancy" integer DEFAULT 0 NOT NULL,
|
||||
"capacity" integer DEFAULT 0 NOT NULL,
|
||||
"expired" boolean DEFAULT false NOT NULL,
|
||||
"checked_at" timestamp with time zone DEFAULT now() NOT NULL,
|
||||
"seen_at" timestamp with time zone DEFAULT now() NOT NULL
|
||||
);
|
||||
--> statement-breakpoint
|
||||
ALTER TABLE "imvu_link" ADD COLUMN "list_rooms" boolean DEFAULT false NOT NULL;--> statement-breakpoint
|
||||
CREATE INDEX "room_owner" ON "room" USING btree ("owner_imvu_id");
|
||||
File diff suppressed because it is too large.
Load diff
@@ -15,6 +15,13 @@
|
||||
"when": 1793277687785,
|
||||
"tag": "0001_age_checks",
|
||||
"breakpoints": true
|
||||
},
|
||||
{
|
||||
"idx": 2,
|
||||
"version": "7",
|
||||
"when": 1793321456968,
|
||||
"tag": "0002_rooms",
|
||||
"breakpoints": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -139,10 +139,34 @@ export const imvuLink = pgTable(
|
||||
linkedAt: timestamp("linked_at", { withTimezone: true }).notNull().defaultNow(),
|
||||
showBadge: boolean("show_badge").notNull().default(false),
|
||||
showPresence: boolean("show_presence").notNull().default(false),
|
||||
listRooms: boolean("list_rooms").notNull().default(false),
|
||||
},
|
||||
(t) => [index("imvu_link_user").on(t.userId)],
|
||||
);
|
||||
|
||||
// An IMVU room a T5DE user entered whose owner is a linked account, as IMVU last described it. Listed on the hub
|
||||
// only if its owner chose to list their rooms and IMVU says it's public and listed.
|
||||
export const room = pgTable(
|
||||
"room",
|
||||
{
|
||||
instanceId: text("instance_id").primaryKey(), // "<owner>-<n>"
|
||||
ownerImvuId: bigint("owner_imvu_id", { mode: "number" }).notNull(),
|
||||
name: text("name").notNull(),
|
||||
description: text("description").notNull().default(""),
|
||||
imageURL: text("image_url").notNull().default(""),
|
||||
privacy: text("privacy").notNull(),
|
||||
type: text("type").notNull(),
|
||||
contentRating: text("content_rating").notNull().default(""),
|
||||
accessPass: boolean("access_pass").notNull().default(false),
|
||||
occupancy: integer("occupancy").notNull().default(0),
|
||||
capacity: integer("capacity").notNull().default(0),
|
||||
expired: boolean("expired").notNull().default(false),
|
||||
checkedAt: timestamp("checked_at", { withTimezone: true }).notNull().defaultNow(),
|
||||
seenAt: timestamp("seen_at", { withTimezone: true }).notNull().defaultNow(),
|
||||
},
|
||||
(t) => [index("room_owner").on(t.ownerImvuId)],
|
||||
);
|
||||
|
||||
// An age check by one provider: of a person, or of one of their linked IMVU accounts. Only the outcome: never a
|
||||
// birth date, document, photo or name (providers that see those keep them).
|
||||
export const ageCheck = pgTable(
|
||||
|
||||
Reference in new issue
Block a user