feat: 翻译

This commit is contained in:
eggmanQQQ
2024-11-25 15:00:07 +08:00
parent 1123b26e88
commit b5cbe0e146
32 changed files with 248 additions and 118 deletions

View File

@@ -19,12 +19,6 @@ import android.view.animation.AnimationUtils
import android.widget.FrameLayout
import android.widget.ImageView
import android.widget.TextView
import com.coorchice.library.SuperTextView
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
import com.netease.nimlib.sdk.chatroom.model.ChatRoomNotificationAttachment
import com.opensource.svgaplayer.*
import com.opensource.svgaplayer.SVGAParser.Companion.shareParser
import com.chwl.app.R
import com.chwl.app.avroom.activity.AVRoomActivity
import com.chwl.app.avroom.helper.AnimHelper
@@ -52,6 +46,12 @@ import com.chwl.core.user.bean.UserInfo
import com.chwl.core.utils.extension.subAndReplaceDot
import com.chwl.library.utils.ListUtils
import com.chwl.library.utils.ResUtil
import com.coorchice.library.SuperTextView
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
import com.netease.nimlib.sdk.chatroom.model.ChatRoomNotificationAttachment
import com.opensource.svgaplayer.*
import com.opensource.svgaplayer.SVGAParser.Companion.shareParser
import io.reactivex.Observable
import io.reactivex.ObservableEmitter
import io.reactivex.ObservableOnSubscribe
@@ -749,22 +749,23 @@ class RoomEffectBoxView @JvmOverloads constructor(
}
}
//todo do 进场特效北京背景
private fun memberInSvgaPath(level: Int): String {
var path = ""
if (level in 30..39) {
path = "svga/svga_member_in_lv30.svga"
path = "svga/experience_entre_effect_30.svga"
} else if (level in 40..49) {
path = "svga/svga_member_in_lv40.svga"
path = "svga/experience_entre_effect_40.svga"
} else if (level in 50..59) {
path = "svga/svga_member_in_lv50.svga"
path = "svga/experience_entre_effect_50.svga"
} else if (level in 60..69) {
path = "svga/svga_member_in_lv60.svga"
path = "svga/experience_entre_effect_60.svga"
} else if (level in 70..79) {
path = "svga/svga_member_in_lv70.svga"
path = "svga/experience_entre_effect_70.svga"
} else if (level in 80..89) {
path = "svga/svga_member_in_lv80.svga"
path = "svga/experience_entre_effect_80.svga"
} else if (level >= 90) {
path = "svga/svga_member_in_lv90.svga"
path = "svga/experience_entre_effect_90.svga"
}
return path
}

View File

@@ -21,12 +21,6 @@ import android.widget.ImageView
import android.widget.TextView
import androidx.core.content.ContextCompat
import androidx.core.text.HtmlCompat
import com.coorchice.library.SuperTextView
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
import com.netease.nimlib.sdk.chatroom.model.ChatRoomNotificationAttachment
import com.opensource.svgaplayer.*
import com.opensource.svgaplayer.SVGAParser.Companion.shareParser
import com.chwl.app.R
import com.chwl.app.avroom.activity.AVRoomActivity
import com.chwl.app.avroom.bean.RoomPlayBean
@@ -48,11 +42,24 @@ import com.chwl.app.utils.SpannableBuilder
import com.chwl.core.XConstants
import com.chwl.core.auth.AuthModel
import com.chwl.core.decoration.car.bean.CarInfo
import com.chwl.core.im.custom.bean.*
import com.chwl.core.im.custom.bean.DatingAllNotifyAttachment
import com.chwl.core.im.custom.bean.DatingAttachment
import com.chwl.core.im.custom.bean.DrawGiftAttachment
import com.chwl.core.im.custom.bean.FairyMsgAttachment
import com.chwl.core.im.custom.bean.GiftCompoundAttachment
import com.chwl.core.im.custom.bean.LevelUpNoticeAttachment
import com.chwl.core.im.custom.bean.NotifyH5Attachment
import com.chwl.core.im.custom.bean.NotifyH5Info
import com.chwl.core.im.custom.bean.RoomBoxPrizeAttachment
import com.chwl.core.im.custom.bean.RoomLuckySeaAttachment
import com.chwl.core.im.custom.bean.RoomPKAttachment
import com.chwl.core.im.custom.bean.RoomRankAttachment
import com.chwl.core.im.custom.bean.RoomReceivedLuckyGiftAttachment
import com.chwl.core.im.custom.bean.SingleRoomRankAttachment
import com.chwl.core.im.custom.bean.TarotAttachment
import com.chwl.core.manager.AvRoomDataManager
import com.chwl.core.manager.IMNetEaseManager
import com.chwl.core.manager.RoomEvent
import com.chwl.core.monsterhunting.SimpleAnimationListener
import com.chwl.core.room.bean.DatingNotifyInfo
import com.chwl.core.super_admin.util.SuperAdminUtil
import com.chwl.core.user.UserModel
@@ -61,6 +68,16 @@ import com.chwl.core.utils.extension.subAndReplaceDot
import com.chwl.library.utils.ListUtils
import com.chwl.library.utils.ResUtil
import com.chwl.library.utils.StringUtils
import com.coorchice.library.SuperTextView
import com.netease.nim.uikit.common.util.sys.ScreenUtil
import com.netease.nimlib.sdk.chatroom.model.ChatRoomMessage
import com.netease.nimlib.sdk.chatroom.model.ChatRoomNotificationAttachment
import com.opensource.svgaplayer.SVGADrawable
import com.opensource.svgaplayer.SVGADynamicEntity
import com.opensource.svgaplayer.SVGAImageView
import com.opensource.svgaplayer.SVGAParser
import com.opensource.svgaplayer.SVGAParser.Companion.shareParser
import com.opensource.svgaplayer.SVGAVideoEntity
import io.reactivex.Observable
import io.reactivex.ObservableEmitter
import io.reactivex.ObservableOnSubscribe
@@ -1450,22 +1467,23 @@ class RoomEffectView @JvmOverloads constructor(
}
}
//todo do 进场特效北京背景
private fun memberInSvgaPath(level: Int): String {
var path = ""
if (level in 30..39) {
path = "svga/svga_member_in_lv30.svga"
path = "svga/experience_entre_effect_30.svga"
} else if (level in 40..49) {
path = "svga/svga_member_in_lv40.svga"
path = "svga/experience_entre_effect_40.svga"
} else if (level in 50..59) {
path = "svga/svga_member_in_lv50.svga"
path = "svga/experience_entre_effect_50.svga"
} else if (level in 60..69) {
path = "svga/svga_member_in_lv60.svga"
path = "svga/experience_entre_effect_60.svga"
} else if (level in 70..79) {
path = "svga/svga_member_in_lv70.svga"
path = "svga/experience_entre_effect_70.svga"
} else if (level in 80..89) {
path = "svga/svga_member_in_lv80.svga"
path = "svga/experience_entre_effect_80.svga"
} else if (level >= 90) {
path = "svga/svga_member_in_lv90.svga"
path = "svga/experience_entre_effect_90.svga"
}
return path
}

View File

@@ -0,0 +1,9 @@
package com.chwl.app.constants;
public class AnyType {
public @interface ObtainWay {
int ACT = 2;
int Def = 1;
}
}

View File

@@ -4,6 +4,7 @@ import android.view.Gravity
import com.chwl.app.R
import com.chwl.app.bindadapter.BaseBindingAdapter
import com.chwl.app.bindadapter.BaseBindingViewHolder
import com.chwl.app.constants.AnyType
import com.chwl.app.databinding.ItemDressUpLayoutBinding
import com.chwl.app.decoration.ui.activity.DressUpTabActivity
import com.chwl.app.decoration.util.DressUpUtil
@@ -15,6 +16,8 @@ import com.example.lib_utils.ktx.getString
class DressUpAdapter : BaseBindingAdapter<ItemDressUpLayoutBinding, DressUpInfo>() {
// val myVipLevel = UserModel.get().cacheLoginUserInfo?.userVipInfoVO?.vipLevel?:-1
override fun convert(
helper: BaseBindingViewHolder<ItemDressUpLayoutBinding>,
item: DressUpInfo
@@ -49,8 +52,16 @@ class DressUpAdapter : BaseBindingAdapter<ItemDressUpLayoutBinding, DressUpInfo>
DressUpUtil.setTextPrice(binding.price,item)
binding.price.setVis(!item.isMy)
binding.discount.text = item.discount.toString()
//1-普通 2-活动
if (item.obtainWay == AnyType.ObtainWay.ACT) {
binding.discount.text = R.string.obtainWayActionItem.getString()
} else {
if (item.vipLimit > 0) {
binding.discount.text = R.string.vipLimit.getString(item.vipLimit)
} else {
binding.discount.text = R.string.vipDiscount.getString(item.vipLevel,"${item.discount}%")
}
}
binding.discount.setVis(!item.isMy)

View File

@@ -58,6 +58,7 @@ class DressUpUtil {
outData.effectType = inData.effectType
outData.dressType = inData.dressType
outData.vipLimit = inData.vipLimit
outData.vipLevel = inData.vipLevel
outData.id = inData.dressId
outData.dressId = inData.id
outData.obtainWay = inData.obtainWay
@@ -218,7 +219,8 @@ class DressUpUtil {
textStyle = Typeface.NORMAL
).setTextStyle(
text = item.originalPrice,
textColor = R.color.color_d9e7f7.getColor(),
textColor = R.color.color_d9e7f7_50.getColor(),
textStyle = Typeface.NORMAL,
delLine = true
).apply()
textView.setVis(true)

View File

@@ -107,15 +107,15 @@ class HomeRoomAdapter : BaseMultiItemQuickAdapter<HomeRoomInfo, BaseViewHolder>
val userAdapter = micUserRecyclerView.adapter as HomeRoomUserAdapter
userAdapter.setNewData(item.micUsers)
//todo 小时榜 背景需要更换
val topView = helper.getView<ImageView>(R.id.iv_top)
topView.visibility = View.VISIBLE
if (item.hourTop == 1) {
topView.setImageResource(R.drawable.home_room_bg_hour_top)
topView.setImageResource(R.drawable.ic_home_room_bg_top_1)
} else if (item.hourTop == 2) {
topView.setImageResource(R.drawable.home_room_bg_week_top)
topView.setImageResource(R.drawable.ic_home_room_bg_top_2)
}else if (item.hourTop == 3) {
topView.setImageResource(R.drawable.home_room_bg_week_top)
topView.setImageResource(R.drawable.ic_home_room_bg_top_3)
} else {
topView.visibility = View.INVISIBLE
}
@@ -155,16 +155,17 @@ class HomeRoomAdapter : BaseMultiItemQuickAdapter<HomeRoomInfo, BaseViewHolder>
}
}
//todo do 标签
// 1 = 热门 2=客服
val title = helper.getView<DrawableTextView>(R.id.tv_room_title)
if (item.homeRoomType == 0) {
title.setDrawableEmpty(null,null,R.drawable.transparent_draw.getDrawable(),null)
}else if (item.homeRoomType == 1) {
title.setDrawableEmpty(null,null,R.drawable.transparent_draw.getDrawable(),null)
title.setDrawableEmpty(null,null,R.drawable.ic_home_room_icon_hot.getDrawable(),null)
}else if (item.homeRoomType == 2) {
title.setDrawableEmpty(null,null,R.drawable.transparent_draw.getDrawable(),null)
title.setDrawableEmpty(null,null,R.drawable.ic_home_room_icon_service.getDrawable(),null)
}
} else {
if (item.bannerVoList.isVerify()){

View File

@@ -720,20 +720,24 @@ public class UserInfoDialog extends AppCompatDialog implements View.OnClickListe
ivAvatarBgMask.setVisibility(View.INVISIBLE);
ivAvatarBg.setVisibility(View.INVISIBLE);
VipUtil.INSTANCE.setUserBg(userInfo.getInfoCardVo(),mUserCardWearLayout, callBack -> {
if (callBack) {
ivAvatarBgMask.setVisibility(View.INVISIBLE);
ivAvatarBg.setVisibility(View.INVISIBLE);
} else {
if (avatarBg == null || !avatarBg.equals(userInfo.getAvatar())) {
avatarBg = userInfo.getAvatar();
ImageLoadUtils.loadImageWithBlur(context, userInfo.getAvatar(), ivAvatarBg, 10, 1);
ivAvatarBgMask.setVisibility(View.VISIBLE);
ivAvatarBg.setVisibility(View.VISIBLE);
if (userInfo.getInfoCardVo() != null) {
VipUtil.INSTANCE.setUserBg(userInfo.getInfoCardVo(), mUserCardWearLayout, callBack -> {
if (callBack) {
ivAvatarBgMask.setVisibility(View.INVISIBLE);
ivAvatarBg.setVisibility(View.INVISIBLE);
} else {
if (avatarBg == null || !avatarBg.equals(userInfo.getAvatar())) {
avatarBg = userInfo.getAvatar();
ImageLoadUtils.loadImageWithBlur(context, userInfo.getAvatar(), ivAvatarBg, 10, 1);
ivAvatarBgMask.setVisibility(View.VISIBLE);
ivAvatarBg.setVisibility(View.VISIBLE);
}
}
}
return null;
});
return null;
});
} else {
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -120,7 +120,6 @@
android:drawablePadding="4dp"
android:gravity="center"
android:textColor="#f8ce1f"
android:textStyle="bold"
app:autoSizeStepGranularity="@dimen/picker_default_text_size"
app:dt_drawableLeftHeight="25dp"
app:dt_drawableLeftSrc="@drawable/ic_coin_84"

View File

@@ -65,7 +65,7 @@
android:gravity="center"
android:paddingBottom="7dp"
android:textColor="#f8ce1f"
android:textSize="15sp"
android:textSize="12sp"
android:visibility="gone"
app:dt_drawableLeftHeight="18dp"
app:dt_drawableLeftSrc="@drawable/ic_coin_84"
@@ -110,7 +110,7 @@
app:layout_constraintEnd_toEndOf="@id/picBg"
app:layout_constraintStart_toStartOf="@id/picBg"
app:layout_constraintTop_toTopOf="@id/picBg"
tools:background="@drawable/icon_room_bg_gif_type"
tools:background="@drawable/ic_dress_up_empty"
tools:visibility="visible" />
<ImageView

View File

@@ -5337,11 +5337,18 @@
<string name="Purchases_hint_info">لا يمكنك تحميل أكثر من 6 صور في المرة الواحدة كخلفية مخصصة\nبمجرد إنشاء الخلفية، لا يمكن إلغاؤها\nسوف نراجع الخلفية التي تم تحميلها خلال 24 ساعة\nإذا تم رفض الخلفية، فسوف تتلقى استردادًا للعملات</string>
<string name="chat_limit_tip_title">أنت والآخر لستما صديقين، لذا لا يمكنكما الدردشة بشكل خاص</string>
<string name="chat_limit_tip1">كن في اي بي%s بدون أي علاقة، يمكنك الدردشة مع المستخدمين بشكل خاص مجانًا كل يوم، جربه؟</string>
<string name="chat_limit_tip2">كن في اي بي%s، يمكنك الحصول على %s حصص كل يوم، والدردشة بشكل خاص مع المستخدمين مجانًا، جرب ذلك؟</string>
<string name="chat_limit_tip2">كن في اي بي%2$s، يمكنك الحصول على %1$s حصص كل يوم، والدردشة بشكل خاص مع المستخدمين مجانًا، جرب ذلك؟</string>
<string name="chat_limit_tip3">لقد قمت بالدردشة مع 1000 شخص اليوم، يرجى المحاولة مرة أخرى غدًا.</string>
<string name="getsVip">%sكن في اي بي</string>
<string name="s_sDays">%s/%s يوم</string>
<string name="s_sDays">%1$s/%2$s يوم</string>
<string name="sDays">%s يوم</string>
<string name="unDay">&lt;1 يوم</string>
<string name="s_sDays_s">%s/%s يوم %s</string>
<string name="Not_used">غير مستخدم</string>
<string name="userInfoBg">الصفحة الرئيسية</string>
<string name="My_Dress">ملابسي</string>
<string name="limit">محدود</string>
<string name="vipLimit">حصريًا لفي اي بي%s</string>
<string name="obtainWayAction">احصل عليها فقط في الحدث</string>
<string name="obtainWayActionItem">احصل عليها فقط في الحدث، لا يمكن الشراء</string>
<string name="s_sDays_s">"%2$s/%1$s يوم %3$s "</string>
</resources>

View File

@@ -5133,11 +5133,18 @@ Toplam imza alın, ilgili ödülü alın
<string name="Purchases_hint_info">Özel arka plan olarak aynı anda en fazla 6 resim yükleyebilirsiniz.\nArka plan oluşturulduktan sonra iptal edilemez.\nYüklenen arka planı 24 saat içinde inceleyeceğiz.\nArka plan reddedilirse, jeton iadesi alacaksınız.</string>
<string name="chat_limit_tip_title">Sen ve diğerleri arkadaş değilsiniz, bu yüzden özel sohbet edemezsiniz.</string>
<string name="chat_limit_tip1">Hiçbir ilişkiniz olmadan %s olun, kullanıcılarla her gün ücretsiz olarak özel olarak sohbet edebilirsiniz, dener misiniz?</string>
<string name="chat_limit_tip2">%s olun, her gün %s kota alabilirsiniz, kullanıcılarla özel olarak ücretsiz sohbet edebilirsiniz, dener misiniz?</string>
<string name="chat_limit_tip2">%1$s olun, her gün %2$s kota alabilirsiniz, kullanıcılarla özel olarak ücretsiz sohbet edebilirsiniz, dener misiniz?</string>
<string name="chat_limit_tip3">Bugün 1000 kişiyle sohbet ettiniz, lütfen yarın tekrar deneyin.</string>
<string name="getsVip">VIP%s olun</string>
<string name="s_sDays">%s/%s gün</string>
<string name="s_sDays">%1$s/%2$s gün</string>
<string name="sDays">%s gün</string>
<string name="unDay">&lt;1 gün</string>
<string name="s_sDays_s">%s/%s gün %s</string>
<string name="Not_used">Kullanılmadı</string>
<string name="userInfoBg">Ana Sayfa</string>
<string name="My_Dress">Benim Elbisem</string>
<string name="limit">Sınırlı</string>
<string name="vipLimit">VIP\'lere özel%s</string>
<string name="obtainWayAction">Yalnızca Etkinliğe Göre Alın</string>
<string name="obtainWayActionItem">Yalnızca etkinliğe göre alın, satın alınamaz.</string>
<string name="s_sDays_s">%1$s/%2$sgün %3$s</string>
</resources>

View File

@@ -5280,12 +5280,19 @@
<string name="Purchases_hint_info">您一次最多只能上传 6 张图片作为自定义背景。\n背景一旦创建就无法取消。\n我们将在 24 小时内审核上传的背景。\n如果背景被拒绝您将收到金币退款。</string>
<string name="chat_limit_tip_title">你和對方不是朋友,所以不能私聊。</string>
<string name="chat_limit_tip1">成為%s不用任何關係每天都可以免費與用戶私聊試試看嗎</string>
<string name="chat_limit_tip2">成為%s每天可獲得%s個配額免費與用戶私聊試試看嗎</string>
<string name="chat_limit_tip2">成為%1$s每天可獲得%2$s個配額免費與用戶私聊試試看嗎</string>
<string name="chat_limit_tip3">你今天已經與1000人聊天請明天再試。</string>
<string name="getsVip">成為VIP%s</string>
<string name="s_sDays">%s/%s天</string>
<string name="s_sDays">%1$s/%2$s天</string>
<string name="sDays">%s天</string>
<string name="unDay">&lt;1天</string>
<string name="s_sDays_s">%s/%s天 %s</string>
<string name="Not_used">不使用</string>
<string name="userInfoBg">個人主頁</string>
<string name="My_Dress">我的裝扮</string>
<string name="limit">限時</string>
<string name="vipLimit">VIP%s用戶獨享</string>
<string name="obtainWayAction">僅參與活動獲得</string>
<string name="obtainWayActionItem">僅參與活動獲得,無法購買</string>
<string name="s_sDays_s">%1$s/%2$s天 %3$s</string>
</resources>

View File

@@ -770,5 +770,6 @@
<color name="color_ff9741">#ff9741</color>
<color name="color_ff5656">#ff5656</color>
<color name="color_d9e7f7">#d9e7f7</color>
<color name="color_d9e7f7_50">#80D9E7F7</color>
</resources>

View File

@@ -5342,22 +5342,24 @@ You cannot join again within 24 hours after leaving</string>
<string name="Purchases_hint_info">You can only upload up to 6 images at a time as a custom background.\nOnce the background is created, it cannot be canceled.\nWe will review the uploaded background within 24 hours.\nIf the background is rejected, you will receive a refund of coins.</string>
<string name="chat_limit_tip1">Be %s without any relationship, you can chat with users privately for free every day,try it?</string>
<string name="chat_limit_tip2">Be %s, you can get %s quotas every day, chat privately with users for free, try it?</string>
<string name="chat_limit_tip2">Be %1$s, you can get %2$s quotas every day, chat privately with users for free, try it?</string>
<string name="chat_limit_tip3">You have chatted with 1,000 people today, please try again tomorrow.</string>
<string name="getsVip">Be VIP%s</string>
<string name="s_sDays">%s/%sDays</string>
<string name="s_sDays">%1$s/%2$sDays</string>
<string name="sDays">%sDays</string>
<string name="unDay">&lt;1Days</string>
<string name="Not_used">Not used</string>
<string name="userInfoBg">userInfoBg</string>
<string name="userInfoBg">Homepage</string>
<string name="My_Dress">My Dress</string>
<string name="limit">limit</string>
<string name="vipLimit">VIP限制 %s</string>
<string name="obtainWayAction">活动获取 不可购买</string>
<string name="s_sDays_s">%s/%sDays %s</string>
<string name="limit">Limited</string>
<string name="vipLimit">Exclusive for VIP%s</string>
<string name="vipDiscount">VIP%1$s-%2$s</string>
<string name="obtainWayAction">Only Get by Event</string>
<string name="obtainWayActionItem">Only get by event, cannot buy.</string>
<string name="s_sDays_s">%1$s/%2$sD %3$s</string>
</resources>

View File

@@ -11,6 +11,7 @@ import com.chwl.library.utils.SizeUtils
import com.example.lib_utils.UiUtils.isRtl
import com.example.lib_utils.ktx.getString
import com.hjq.toast.ToastUtils
import java.util.Locale
fun View.setMargin(start:Int?=null,top:Int?=null,end:Int?=null,bottom:Int?=null,isDP:Boolean = true) {
@@ -134,7 +135,7 @@ fun Double?.toNumString(byte:Int = 2) : String {
if (floatNum == 0.0) {
return intNum.toString()
} else {
val format = String.format("%.${byte}f", this)
val format = String.format(Locale.ENGLISH,"%.${byte}f", this)
if (format.endsWith(".00")){
return intNum.toString()
}else if (format.contains(".") && format.endsWith("0")){

154
mode.json
View File

@@ -2,52 +2,112 @@
"code": 200,
"message": "success",
"data": {
"totalPage": 1,
"nameplateList": [
{
"id": 406,
"uid": 3224,
"nameplateId": 101,
"isCustomWord": true,
"word": " 555",
"remark": " 555",
"expireTime": 1738663248000,
"createTime": 1731319248000,
"updateTime": 1731319248000,
"nameplateName": " 555",
"nameplateImage": "https://image.pekolive.com/11094f2f00fb491f963132463bab97ec.png",
"isExpired": false,
"expireDays": 74,
"isUsing": true,
"iconPic": "https://image.pekolive.com/gonghuizhangmingpaikaobei.png",
"fixedWord": " 555",
"nameplateType": "1",
"dressShopId": 33,
"dressPrice": 1000,
"discountPrice": 950.00,
"vipLevel": 6,
"discount": 95,
"dressDay": 9
},
{
"id": 407,
"uid": 3224,
"nameplateId": 100,
"isCustomWord": false,
"word": " ",
"remark": " ",
"expireTime": 1733220061000,
"createTime": 1731319261000,
"updateTime": 1731319261000,
"nameplateName": "女神",
"nameplateImage": "https://image.pekolive.com/guanfangzhuli-bajisitan.png",
"isExpired": false,
"expireDays": 11,
"isUsing": false,
"iconPic": "https://image.pekolive.com/guanfangzhuli-bajisitan.png",
"nameplateType": "1"
}
]
"uid": 3200,
"erbanNo": 991,
"birth": 1038326400000,
"phone": "04****6556",
"phoneAreaCode": "61",
"nick": "打小就爱哭",
"defUser": 1,
"gender": 1,
"avatar": "https://image.pekolive.com/6f22d3ae-3575-4719-87e6-8c6d95026124.jpg",
"region": "沙特阿拉伯",
"userDesc": "",
"followNum": 1,
"fansNum": 4,
"hasPrettyErbanNo": true,
"hasRegPacket": false,
"userLevelVo": {
"experAmount": 22898613,
"charmAmount": 178418802,
"experUrl": "https://image.pekolive.com/Wealth_43.png",
"charmUrl": "https://image.pekolive.com/Charm_51.png",
"experLevelName": "Lv43",
"charmLevelName": "Lv51",
"experLevelGrp": "",
"charmLevelGrp": "",
"experLevelSeq": 43,
"charmLevelSeq": 51
},
"isCustomWord": false,
"newUser": false,
"userHeadwear": {
"uid": 3200,
"headwearId": 194,
"headwearName": "VIP4頭飾",
"used": true,
"buyTime": 1731581298000,
"expireTime": 1732852800000,
"expireDays": 7,
"status": 1,
"pic": "https://image.pekolive.com/Vip4headdress.png",
"effect": "https://image.pekolive.com/Vip4headdress.svga",
"price": 0.00,
"renewPrice": 0.00,
"days": 15,
"comeFrom": 3,
"labelType": 0,
"limitDesc": "",
"originalPrice": 10000,
"redirectLink": "",
"type": 1
},
"isBindPhone": true,
"isBindPasswd": true,
"isBindPaymentPwd": false,
"isCertified": false,
"isBindApple": false,
"bindType": 3,
"userInfoSkillVo": {
"liveTag": false,
"liveSkillVoList": []
},
"platformRole": 0,
"privatePhoto": [],
"registerDay": 95,
"createTime": 1724299157000,
"isFirstCharge": false,
"isReview": false,
"userVipInfoVO": {
"vipIcon": "https://image.pekolive.com/v6.png",
"vipLevel": 6,
"vipName": "VIP6",
"vipLogo": "https://image.pekolive.com/v6.mp4",
"userCardBG": "https://image.molistar.xyz/V6_user_bg.png\n\n",
"nameplateId": 6,
"nameplateUrl": "https://image.molistar.xyz/VIP6_nameplate.png",
"micCircle": "https://image.molistar.xyz/v6_mic_cycle.svga",
"micNickColour": "#A5FFDC",
"friendNickColour": "#A5FFDC",
"preventKick": false,
"enterHide": false,
"preventTrace": false,
"preventFollow": false,
"uploadGifAvatar": false,
"privateChatLimit": false,
"enterRoomEffects": "https://image.molistar.xyz/v6_enter_effect.svga",
"expireTime": 1732680000000
},
"userInfoCardPic": "https://image.molistar.xyz/v6_info_card.mp4",
"micCircle": "https://image.molistar.xyz/v6_mic_cycle.svga",
"micNickColor": "#A5FFDC",
"audioCard": {
"uid": 3200,
"status": 0
},
"labels": [],
"androidBubbleUrl": "https://image.molistar.xyz/v5_chatbubble_android.png",
"iosBubbleUrl": "https://image.molistar.xyz/v5_chatbubble_ios.png",
"fromSayHelloChannel": false,
"showLimitCharge": false,
"banAccount": false,
"isRechargeUser": false,
"inMic": false,
"partitionId": 2,
"infoCardVo": {
"effectType": 0,
"effect": "https://image.molistar.xyz/v6_info_card.mp4"
}
},
"timestamp": 1732272347736
"timestamp": 1732517418215
}