协议修改:增加热度值和收藏时间

This commit is contained in:
chen wei bo
2025-10-08 13:39:14 +08:00
parent 7489206537
commit 8b4f2d7262
8 changed files with 2827 additions and 59 deletions
@@ -37,6 +37,7 @@ export enum DataId {
GirlUnlock = "girlUnlock", // 技师的解锁数据
GirlChat = "girlChat", // 技师的聊天数据
GirlFavorability = "girlFavorability", // 技师的好感度数据
GirlOther = "girlOther", // 技师的其他数据
Env = "env", // 环境数据
Global = "global", // 全局数据
AiCharacter = "aiCharacter", // Ai角色配置
+135 -58
View File
@@ -7,6 +7,7 @@ import { GirlDetailData } from "./GirlDetailData";
import { GirlUnlockData } from "./GirlUnlockData";
import { GirlChatData } from "./GirlChatData";
import { GirlFavorabilityData } from "./GirlFavorabilityData";
import { GirlOtherData } from "./GirlOtherData";
import { DataId } from "./DataManager";
import proto from "db://assets/Scripts/proto/proto.pb.js";
import { PriceType } from "../../schema/schema";
@@ -24,6 +25,8 @@ interface CategoryBucket {
chats: Map<number, GirlChatData>;
// 技师的好感度数据
favorability: Map<number, GirlFavorabilityData>;
// 技师的其他数据
other: Map<number, GirlOtherData>;
// 技师的id
girlIds: number[];
}
@@ -67,6 +70,7 @@ export class GirlData extends BaseData {
unlocks: new Map<number, GirlUnlockData>(),
chats: new Map<number, GirlChatData>(),
favorability: new Map<number, GirlFavorabilityData>(),
other: new Map<number, GirlOtherData>(),
girlIds: [],
};
cats.set(categoryId, bucket);
@@ -89,6 +93,7 @@ export class GirlData extends BaseData {
this.setGirlBrief(categoryId, data.girls);
this.setGirlUnlock(categoryId, data.girls);
this.setGirlFavorability(categoryId, data.girls);
this.setGirlOther(categoryId, data.girls);
const bucket = this.ensureBucket(categoryId);
logger.log("保存类别 ", categoryId, " 的技师列表: ", bucket);
@@ -107,6 +112,7 @@ export class GirlData extends BaseData {
this.setGirlUnlock(categoryId, details);
this.setGirlChat(categoryId, details);
this.setGirlFavorability(categoryId, details);
this.setGirlOther(categoryId, details);
const bucket = this.ensureBucket(categoryId);
logger.log("保存类别 ", categoryId, " 的详细数据: ", bucket);
@@ -129,6 +135,54 @@ export class GirlData extends BaseData {
logger.log("保存可聊天的技师数据: ", cats);
}
/** --------------------------------------------------------- 每日推荐 --------------------------------------------------------- */
/** 保存每日推荐:放入特殊分类 DAILY_BUCKET,并维护 id 索引 */
public setDailyRecommend(data: proto.cs.ICSDailyRecommendRes): void {
if (!data) return;
this.mergeOneBrief(DAILY_BUCKET, data.girl);
const bucket = this.ensureBucket(DAILY_BUCKET);
logger.log("保存每日推荐: ", bucket);
}
/** 判断每日推荐是否存在 */
public isDailyRecommendIn(): boolean {
const bucket = this.ensureCategories().get(DAILY_BUCKET);
if (!bucket) return false;
return bucket.girlIds.length > 0;
}
/** 获取推荐id */
public getRecommendGirlId(): number {
const bucket = this.ensureBucket(DAILY_BUCKET);
const girlIds = bucket.girlIds;
const length = girlIds.length;
if (length <= 0) return 0;
return girlIds[length - 1];
}
/** 获取每日推荐的简要数据 */
private getRecommendGrilBrief(): GirlBriefData | null {
const recId = this.getRecommendGirlId();
if (recId <= 0) return null;
const data = this.getGrilBrief(DAILY_BUCKET, recId);
return data;
}
/** 获取名字 */
public getRecommendGrilName(): string {
let oneData = this.getRecommendGrilBrief();
if (!oneData) return "";
return oneData.getGrilName();
}
/** 获取头像路径 */
public getRecommendGrilAvatar(): string {
let oneData = this.getRecommendGrilBrief();
if (!oneData) return "";
return oneData.getGrilAvatar();
}
/** --------------------------------------------------------- 技师的简要数据 --------------------------------------------------------- */
/**
@@ -1155,31 +1209,24 @@ export class GirlData extends BaseData {
/** --------------------------------------------------------- 技师的好感度数据 --------------------------------------------------------- */
// 创建一个技师好感度数据
private createOneGirlFavorability(
id: number,
star: number
): GirlFavorabilityData {
private createOneGirlFavorability(id: number, star: number, bookmarkTime: number): GirlFavorabilityData {
let oneData = new GirlFavorabilityData();
oneData.init?.(DataId.GirlFavorability);
oneData.setId(id);
oneData.setStar(star);
oneData.setBookmarkTime(bookmarkTime);
return oneData;
}
// 解析技师好感度数据,一个
private parseOneGirlFavorability(
data: proto.cs.IGirlData
): GirlFavorabilityData | null {
private parseOneGirlFavorability(data: proto.cs.IGirlData): GirlFavorabilityData | null {
if (!data) return null;
let oneData = this.createOneGirlFavorability(data.id, data.star);
let oneData = this.createOneGirlFavorability(data.id, data.star, Number(data.bookmarkTime));
return oneData;
}
/** 保存技师的好感度数据 */
private setGirlFavorability(
categoryId: string,
data: proto.cs.IGirlData[]
): void {
private setGirlFavorability(categoryId: string,data: proto.cs.IGirlData[]): void {
if (!data) return;
const bucket = this.ensureBucket(categoryId);
for (const g of data) {
@@ -1195,14 +1242,14 @@ export class GirlData extends BaseData {
let briefData = data.girl;
let categoryId = briefData.category;
let girlId = briefData.id;
let favData = this.getGrilFavorability(categoryId.toString(), girlId);
let favData = this.getGirlFavorability(categoryId.toString(), girlId);
if (favData) {
// 已存在数据,刷新
favData.setStar(data.star);
} else {
// 不存在数据,创建
const bucket = this.ensureBucket(categoryId.toString());
let oneData = this.createOneGirlFavorability(data.id, data.star);
let oneData = this.createOneGirlFavorability(data.id, data.star, 0);
if (oneData) {
bucket.favorability.set(data.id, oneData);
}
@@ -1210,10 +1257,7 @@ export class GirlData extends BaseData {
}
/** 取某分类 + girlId 的好感度数据 */
private getGrilFavorability(
categoryId: string,
girlId: number
): GirlFavorabilityData | null {
private getGirlFavorability(categoryId: string, girlId: number): GirlFavorabilityData | null {
const b = this.ensureCategories().get(categoryId);
if (!b) return null;
return b.favorability.get(girlId) ?? null;
@@ -1228,56 +1272,89 @@ export class GirlData extends BaseData {
/** 获取星级 */
public getStar(categoryId: string, girlId: number): number {
let oneData = this.getGrilFavorability(categoryId, girlId);
let oneData = this.getGirlFavorability(categoryId, girlId);
if (!oneData) return 0;
return oneData.getStar();
}
/** --------------------------------------------------------- 每日推荐 --------------------------------------------------------- */
/** 获取收藏时间,时间戳,秒 */
public getBookmarkTime(categoryId: string, girlId: number): number {
let oneData = this.getGirlFavorability(categoryId, girlId);
if (!oneData) return 0;
return oneData.getBookmarkTime();
}
/** 保存每日推荐:放入特殊分类 DAILY_BUCKET,并维护 id 索引 */
public setDailyRecommend(data: proto.cs.ICSDailyRecommendRes): void {
/** 是否已经收藏 */
public isBookmarkGirl(categoryId: string, girlId: number): boolean {
let oneData = this.getGirlFavorability(categoryId, girlId);
if (!oneData) return false;
return oneData.isBookmarkGirl();
}
/** 获取所有已经收藏技师的 id */
public getAllBookmarkGirlIds(): number[] {
const result: number[] = [];
const seen = new Set<number>(); // 用来去重
const cats = this.ensureCategories();
// 遍历
for (const [categoryId, bucket] of cats.entries()) {
for (const girlId of bucket.girlIds) {
if (this.isBookmarkGirl(categoryId, girlId) && !seen.has(girlId)) {
seen.add(girlId); // 标记已加入
result.push(girlId);
}
}
}
// 返回结果
return result;
}
/** --------------------------------------------------------- 技师的其他数据 --------------------------------------------------------- */
// 创建一个技师其他数据
private createOneGirlOther(heatValue: number): GirlOtherData {
let oneData = new GirlOtherData();
oneData.init?.(DataId.GirlOther);
oneData.setHeatValue(heatValue);
return oneData;
}
// 解析技师其他数据,一个
private parseOneGirlOther(data: proto.cs.IGirlData): GirlOtherData | null {
if (!data) return null;
let oneData = this.createOneGirlOther(Number(data.score));
return oneData;
}
/** 保存技师的其他数据 */
private setGirlOther(categoryId: string, data: proto.cs.IGirlData[]): void {
if (!data) return;
this.mergeOneBrief(DAILY_BUCKET, data.girl);
const bucket = this.ensureBucket(DAILY_BUCKET);
logger.log("保存每日推荐: ", bucket);
const bucket = this.ensureBucket(categoryId);
for (const g of data) {
const one = this.parseOneGirlOther(g);
if (!one) continue;
bucket.other.set(g.id, one);
}
}
/** 判断每日推荐是否存在 */
public isDailyRecommendIn(): boolean {
const bucket = this.ensureCategories().get(DAILY_BUCKET);
if (!bucket) return false;
return bucket.girlIds.length > 0;
/** 取某分类 + girlId 的其他数据 */
private getGirlOther(categoryId: string, girlId: number): GirlOtherData | null {
const b = this.ensureCategories().get(categoryId);
if (!b) return null;
return b.other.get(girlId) ?? null;
}
/** 获取推荐id */
public getRecommendGirlId(): number {
const bucket = this.ensureBucket(DAILY_BUCKET);
const girlIds = bucket.girlIds;
const length = girlIds.length;
if (length <= 0) return 0;
return girlIds[length - 1];
}
/** 技师的其他数据是否存在 */
public isGirlOtherIn(categoryId: string, girlId: number): boolean {
const b = this.ensureCategories().get(categoryId);
if (!b) return false;
return b.other.has(girlId);
}
/** 获取每日推荐的简要数据 */
private getRecommendGrilBrief(): GirlBriefData | null {
const recId = this.getRecommendGirlId();
if (recId <= 0) return null;
const data = this.getGrilBrief(DAILY_BUCKET, recId);
return data;
}
/** 获取名字 */
public getRecommendGrilName(): string {
let oneData = this.getRecommendGrilBrief();
if (!oneData) return "";
return oneData.getGrilName();
}
/** 获取头像路径 */
public getRecommendGrilAvatar(): string {
let oneData = this.getRecommendGrilBrief();
if (!oneData) return "";
return oneData.getGrilAvatar();
/** 获取热度值 */
public getHeatValue(categoryId: string, girlId: number): number {
let oneData = this.getGirlOther(categoryId, girlId);
if (!oneData) return 0;
return oneData.getHeatValue();
}
}
@@ -9,27 +9,33 @@ export class GirlFavorabilityData extends BaseData {
private id: number;
// 星级
private star: number;
// 收藏时间,时间戳,秒,0: 表示还没收藏
private bookmarkTime: number;
constructor() {
super();
this.id = 0;
this.star = 0;
this.bookmarkTime = 0;
}
public reset(): void {
this.id = 0;
this.star = 0;
this.bookmarkTime = 0;
}
public clear(): void {
this.id = 0;
this.star = 0;
this.bookmarkTime = 0;
}
public destroy(): void {
super.destroy();
this.id = null;
this.star = null;
this.bookmarkTime = null;
}
/** 获取 id */
@@ -51,4 +57,20 @@ export class GirlFavorabilityData extends BaseData {
public setStar(value: number): void {
this.star = value;
}
/** 获取 收藏时间,时间戳,秒 */
public getBookmarkTime(): number {
return this.bookmarkTime;
}
/** 保存 收藏时间,时间戳,秒 */
public setBookmarkTime(value: number): void {
this.bookmarkTime = value;
// logger.log("设置角色 ", this.id, " 的收藏时间:", this.bookmarkTime);
}
/** 是否已经收藏 */
public isBookmarkGirl(): boolean {
return this.bookmarkTime !== 0;
}
}
@@ -0,0 +1,38 @@
/**
*
*/
import { BaseData } from "./BaseData";
import proto from 'db://assets/Scripts/proto/proto.pb.js';
export class GirlOtherData extends BaseData {
// 热度值
private heatValue: number;
constructor() {
super();
this.heatValue = 0;
}
public reset(): void {
this.heatValue = 0;
}
public clear(): void {
this.heatValue = 0;
}
public destroy(): void {
super.destroy();
this.heatValue = null;
}
/** 获取 热度值 */
public getHeatValue(): number {
return this.heatValue;
}
/** 保存 热度值 */
public setHeatValue(value: number): void {
this.heatValue = value;
}
}
@@ -0,0 +1,9 @@
{
"ver": "4.0.24",
"importer": "typescript",
"imported": true,
"uuid": "f3741d24-8c36-4f2c-825e-31097c50d628",
"files": [],
"subMetas": {},
"userData": {}
}
+808
View File
@@ -503,6 +503,12 @@ static getTypeUrl(typeUrlPrefix?: string): string;
/** GirlData unlockTime */
unlockTime?: (number|Long|null);
/** GirlData score */
score?: (number|Long|null);
/** GirlData bookmarkTime */
bookmarkTime?: (number|Long|null);
/** GirlData detail */
detail?: (cs.IGirlsDetail|null);
@@ -543,6 +549,12 @@ star: number;
/** GirlData unlockTime. */
unlockTime: (number|Long);
/** GirlData score. */
score: (number|Long);
/** GirlData bookmarkTime. */
bookmarkTime: (number|Long);
/** GirlData detail. */
detail?: (cs.IGirlsDetail|null);
@@ -3595,6 +3607,802 @@ toJSON(): { [k: string]: any };
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** EnmRankType enum. */
enum EnmRankType {
ERT_Day = 0,
ERT_Week = 1,
ERT_Month = 2,
ERT_Total = 3
}
/** Properties of a CSGetRankReq. */
interface ICSGetRankReq {
/** CSGetRankReq rankType */
rankType?: (number|null);
/** CSGetRankReq page */
page?: (number|null);
/** CSGetRankReq limit */
limit?: (number|null);
}
/** Represents a CSGetRankReq. */
class CSGetRankReq implements ICSGetRankReq {
/**
* Constructs a new CSGetRankReq.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSGetRankReq);
/** CSGetRankReq rankType. */
rankType: number;
/** CSGetRankReq page. */
page: number;
/** CSGetRankReq limit. */
limit: number;
/**
* Creates a new CSGetRankReq instance using the specified properties.
* @param [properties] Properties to set
* @returns CSGetRankReq instance
*/
static create(properties?: cs.ICSGetRankReq): cs.CSGetRankReq;
/**
* Encodes the specified CSGetRankReq message. Does not implicitly {@link cs.CSGetRankReq.verify|verify} messages.
* @param message CSGetRankReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSGetRankReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSGetRankReq message, length delimited. Does not implicitly {@link cs.CSGetRankReq.verify|verify} messages.
* @param message CSGetRankReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSGetRankReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSGetRankReq message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSGetRankReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetRankReq;
/**
* Decodes a CSGetRankReq message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSGetRankReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetRankReq;
/**
* Verifies a CSGetRankReq message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSGetRankReq message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSGetRankReq
*/
static fromObject(object: { [k: string]: any }): cs.CSGetRankReq;
/**
* Creates a plain object from a CSGetRankReq message. Also converts values to other types if specified.
* @param message CSGetRankReq
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSGetRankReq, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSGetRankReq to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSGetRankReq
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSGetRankRes. */
interface ICSGetRankRes {
/** CSGetRankRes girls */
girls?: (cs.IGirlData[]|null);
}
/** Represents a CSGetRankRes. */
class CSGetRankRes implements ICSGetRankRes {
/**
* Constructs a new CSGetRankRes.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSGetRankRes);
/** CSGetRankRes girls. */
girls: cs.IGirlData[];
/**
* Creates a new CSGetRankRes instance using the specified properties.
* @param [properties] Properties to set
* @returns CSGetRankRes instance
*/
static create(properties?: cs.ICSGetRankRes): cs.CSGetRankRes;
/**
* Encodes the specified CSGetRankRes message. Does not implicitly {@link cs.CSGetRankRes.verify|verify} messages.
* @param message CSGetRankRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSGetRankRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSGetRankRes message, length delimited. Does not implicitly {@link cs.CSGetRankRes.verify|verify} messages.
* @param message CSGetRankRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSGetRankRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSGetRankRes message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSGetRankRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetRankRes;
/**
* Decodes a CSGetRankRes message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSGetRankRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetRankRes;
/**
* Verifies a CSGetRankRes message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSGetRankRes message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSGetRankRes
*/
static fromObject(object: { [k: string]: any }): cs.CSGetRankRes;
/**
* Creates a plain object from a CSGetRankRes message. Also converts values to other types if specified.
* @param message CSGetRankRes
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSGetRankRes, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSGetRankRes to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSGetRankRes
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSViewGirlReq. */
interface ICSViewGirlReq {
/** CSViewGirlReq girlId */
girlId?: (number|null);
}
/** Represents a CSViewGirlReq. */
class CSViewGirlReq implements ICSViewGirlReq {
/**
* Constructs a new CSViewGirlReq.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSViewGirlReq);
/** CSViewGirlReq girlId. */
girlId: number;
/**
* Creates a new CSViewGirlReq instance using the specified properties.
* @param [properties] Properties to set
* @returns CSViewGirlReq instance
*/
static create(properties?: cs.ICSViewGirlReq): cs.CSViewGirlReq;
/**
* Encodes the specified CSViewGirlReq message. Does not implicitly {@link cs.CSViewGirlReq.verify|verify} messages.
* @param message CSViewGirlReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSViewGirlReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSViewGirlReq message, length delimited. Does not implicitly {@link cs.CSViewGirlReq.verify|verify} messages.
* @param message CSViewGirlReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSViewGirlReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSViewGirlReq message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSViewGirlReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSViewGirlReq;
/**
* Decodes a CSViewGirlReq message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSViewGirlReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSViewGirlReq;
/**
* Verifies a CSViewGirlReq message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSViewGirlReq message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSViewGirlReq
*/
static fromObject(object: { [k: string]: any }): cs.CSViewGirlReq;
/**
* Creates a plain object from a CSViewGirlReq message. Also converts values to other types if specified.
* @param message CSViewGirlReq
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSViewGirlReq, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSViewGirlReq to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSViewGirlReq
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSViewGirlRes. */
interface ICSViewGirlRes {
}
/** Represents a CSViewGirlRes. */
class CSViewGirlRes implements ICSViewGirlRes {
/**
* Constructs a new CSViewGirlRes.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSViewGirlRes);
/**
* Creates a new CSViewGirlRes instance using the specified properties.
* @param [properties] Properties to set
* @returns CSViewGirlRes instance
*/
static create(properties?: cs.ICSViewGirlRes): cs.CSViewGirlRes;
/**
* Encodes the specified CSViewGirlRes message. Does not implicitly {@link cs.CSViewGirlRes.verify|verify} messages.
* @param message CSViewGirlRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSViewGirlRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSViewGirlRes message, length delimited. Does not implicitly {@link cs.CSViewGirlRes.verify|verify} messages.
* @param message CSViewGirlRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSViewGirlRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSViewGirlRes message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSViewGirlRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSViewGirlRes;
/**
* Decodes a CSViewGirlRes message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSViewGirlRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSViewGirlRes;
/**
* Verifies a CSViewGirlRes message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSViewGirlRes message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSViewGirlRes
*/
static fromObject(object: { [k: string]: any }): cs.CSViewGirlRes;
/**
* Creates a plain object from a CSViewGirlRes message. Also converts values to other types if specified.
* @param message CSViewGirlRes
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSViewGirlRes, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSViewGirlRes to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSViewGirlRes
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSBookmarkReq. */
interface ICSBookmarkReq {
/** CSBookmarkReq girlId */
girlId?: (number|null);
/** CSBookmarkReq cancel */
cancel?: (boolean|null);
}
/** Represents a CSBookmarkReq. */
class CSBookmarkReq implements ICSBookmarkReq {
/**
* Constructs a new CSBookmarkReq.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSBookmarkReq);
/** CSBookmarkReq girlId. */
girlId: number;
/** CSBookmarkReq cancel. */
cancel: boolean;
/**
* Creates a new CSBookmarkReq instance using the specified properties.
* @param [properties] Properties to set
* @returns CSBookmarkReq instance
*/
static create(properties?: cs.ICSBookmarkReq): cs.CSBookmarkReq;
/**
* Encodes the specified CSBookmarkReq message. Does not implicitly {@link cs.CSBookmarkReq.verify|verify} messages.
* @param message CSBookmarkReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSBookmarkReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSBookmarkReq message, length delimited. Does not implicitly {@link cs.CSBookmarkReq.verify|verify} messages.
* @param message CSBookmarkReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSBookmarkReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSBookmarkReq message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSBookmarkReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBookmarkReq;
/**
* Decodes a CSBookmarkReq message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSBookmarkReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBookmarkReq;
/**
* Verifies a CSBookmarkReq message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSBookmarkReq message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSBookmarkReq
*/
static fromObject(object: { [k: string]: any }): cs.CSBookmarkReq;
/**
* Creates a plain object from a CSBookmarkReq message. Also converts values to other types if specified.
* @param message CSBookmarkReq
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSBookmarkReq, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSBookmarkReq to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSBookmarkReq
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSBookmarkRes. */
interface ICSBookmarkRes {
}
/** Represents a CSBookmarkRes. */
class CSBookmarkRes implements ICSBookmarkRes {
/**
* Constructs a new CSBookmarkRes.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSBookmarkRes);
/**
* Creates a new CSBookmarkRes instance using the specified properties.
* @param [properties] Properties to set
* @returns CSBookmarkRes instance
*/
static create(properties?: cs.ICSBookmarkRes): cs.CSBookmarkRes;
/**
* Encodes the specified CSBookmarkRes message. Does not implicitly {@link cs.CSBookmarkRes.verify|verify} messages.
* @param message CSBookmarkRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSBookmarkRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSBookmarkRes message, length delimited. Does not implicitly {@link cs.CSBookmarkRes.verify|verify} messages.
* @param message CSBookmarkRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSBookmarkRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSBookmarkRes message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSBookmarkRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSBookmarkRes;
/**
* Decodes a CSBookmarkRes message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSBookmarkRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSBookmarkRes;
/**
* Verifies a CSBookmarkRes message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSBookmarkRes message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSBookmarkRes
*/
static fromObject(object: { [k: string]: any }): cs.CSBookmarkRes;
/**
* Creates a plain object from a CSBookmarkRes message. Also converts values to other types if specified.
* @param message CSBookmarkRes
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSBookmarkRes, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSBookmarkRes to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSBookmarkRes
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSGetBookmarkReq. */
interface ICSGetBookmarkReq {
/** CSGetBookmarkReq page */
page?: (number|null);
/** CSGetBookmarkReq limit */
limit?: (number|null);
}
/** Represents a CSGetBookmarkReq. */
class CSGetBookmarkReq implements ICSGetBookmarkReq {
/**
* Constructs a new CSGetBookmarkReq.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSGetBookmarkReq);
/** CSGetBookmarkReq page. */
page: number;
/** CSGetBookmarkReq limit. */
limit: number;
/**
* Creates a new CSGetBookmarkReq instance using the specified properties.
* @param [properties] Properties to set
* @returns CSGetBookmarkReq instance
*/
static create(properties?: cs.ICSGetBookmarkReq): cs.CSGetBookmarkReq;
/**
* Encodes the specified CSGetBookmarkReq message. Does not implicitly {@link cs.CSGetBookmarkReq.verify|verify} messages.
* @param message CSGetBookmarkReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSGetBookmarkReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSGetBookmarkReq message, length delimited. Does not implicitly {@link cs.CSGetBookmarkReq.verify|verify} messages.
* @param message CSGetBookmarkReq message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSGetBookmarkReq, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSGetBookmarkReq message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSGetBookmarkReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetBookmarkReq;
/**
* Decodes a CSGetBookmarkReq message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSGetBookmarkReq
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetBookmarkReq;
/**
* Verifies a CSGetBookmarkReq message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSGetBookmarkReq message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSGetBookmarkReq
*/
static fromObject(object: { [k: string]: any }): cs.CSGetBookmarkReq;
/**
* Creates a plain object from a CSGetBookmarkReq message. Also converts values to other types if specified.
* @param message CSGetBookmarkReq
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSGetBookmarkReq, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSGetBookmarkReq to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSGetBookmarkReq
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Properties of a CSGetBookmarkRes. */
interface ICSGetBookmarkRes {
/** CSGetBookmarkRes girls */
girls?: (cs.IGirlData[]|null);
}
/** Represents a CSGetBookmarkRes. */
class CSGetBookmarkRes implements ICSGetBookmarkRes {
/**
* Constructs a new CSGetBookmarkRes.
* @param [properties] Properties to set
*/
constructor(properties?: cs.ICSGetBookmarkRes);
/** CSGetBookmarkRes girls. */
girls: cs.IGirlData[];
/**
* Creates a new CSGetBookmarkRes instance using the specified properties.
* @param [properties] Properties to set
* @returns CSGetBookmarkRes instance
*/
static create(properties?: cs.ICSGetBookmarkRes): cs.CSGetBookmarkRes;
/**
* Encodes the specified CSGetBookmarkRes message. Does not implicitly {@link cs.CSGetBookmarkRes.verify|verify} messages.
* @param message CSGetBookmarkRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encode(message: cs.ICSGetBookmarkRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Encodes the specified CSGetBookmarkRes message, length delimited. Does not implicitly {@link cs.CSGetBookmarkRes.verify|verify} messages.
* @param message CSGetBookmarkRes message or plain object to encode
* @param [writer] Writer to encode to
* @returns Writer
*/
static encodeDelimited(message: cs.ICSGetBookmarkRes, writer?: $protobuf.Writer): $protobuf.Writer;
/**
* Decodes a CSGetBookmarkRes message from the specified reader or buffer.
* @param reader Reader or buffer to decode from
* @param [length] Message length if known beforehand
* @returns CSGetBookmarkRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decode(reader: ($protobuf.Reader|Uint8Array), length?: number): cs.CSGetBookmarkRes;
/**
* Decodes a CSGetBookmarkRes message from the specified reader or buffer, length delimited.
* @param reader Reader or buffer to decode from
* @returns CSGetBookmarkRes
* @throws {Error} If the payload is not a reader or valid buffer
* @throws {$protobuf.util.ProtocolError} If required fields are missing
*/
static decodeDelimited(reader: ($protobuf.Reader|Uint8Array)): cs.CSGetBookmarkRes;
/**
* Verifies a CSGetBookmarkRes message.
* @param message Plain object to verify
* @returns `null` if valid, otherwise the reason why it is not
*/
static verify(message: { [k: string]: any }): (string|null);
/**
* Creates a CSGetBookmarkRes message from a plain object. Also converts values to their respective internal types.
* @param object Plain object
* @returns CSGetBookmarkRes
*/
static fromObject(object: { [k: string]: any }): cs.CSGetBookmarkRes;
/**
* Creates a plain object from a CSGetBookmarkRes message. Also converts values to other types if specified.
* @param message CSGetBookmarkRes
* @param [options] Conversion options
* @returns Plain object
*/
static toObject(message: cs.CSGetBookmarkRes, options?: $protobuf.IConversionOptions): { [k: string]: any };
/**
* Converts this CSGetBookmarkRes to JSON.
* @returns JSON object
*/
toJSON(): { [k: string]: any };
/**
* Gets the default type url for CSGetBookmarkRes
* @param [typeUrlPrefix] your custom typeUrlPrefix(default "type.googleapis.com")
* @returns The default type url
*/
static getTypeUrl(typeUrlPrefix?: string): string;
}
/** Category enum. */
enum Category {
Category_mature = 0,
File diff suppressed because it is too large Load Diff