多屏适配:修复在方形屏设备上标题栏不居中问题

This commit is contained in:
Searchstars
2024-12-28 02:07:26 +08:00
parent 998deb7834
commit bfd82209ac
40 changed files with 286 additions and 160 deletions
+1 -1
View File
@@ -30,7 +30,7 @@
"@aiot-toolkit/jsc": "^1.0.7",
"@commitlint/cli": "^17.3.0",
"@commitlint/config-conventional": "^17.3.0",
"aiot-toolkit": "1.1.5-beta.1",
"aiot-toolkit": "1.1.5-beta.2",
"babel-eslint": "^10.0.1",
"eslint": "^6.0.0",
"eslint-config-prettier": "^6.0.0",
+10 -3
View File
@@ -1,17 +1,24 @@
export function CreateLoadingAnimation(pageModel: any){
export function CreateLoadingAnimation(pageModel: any, colorReverse = true){
// anims存在性检测
if(!pageModel.anims){
pageModel.anims = {}
}
var folderName = "loadingWhite"
var addStr = "_颜色反转"
if(!colorReverse){
folderName = "loading"
addStr = ""
}
// 创建动画元素
pageModel.anims.loading_src = { value: "/common/seqanims/loadingWhite/icons8-loading_颜色反转-1.png" }
pageModel.anims.loading_src = { value: `/common/seqanims/${folderName}/icons8-loading${addStr}-1.png` }
pageModel.anims.loading = new global.animengine.SequenceAnim(
pageModel.$page.name,
pageModel.anims.loading_src,
28,
"/common/seqanims/loadingWhite/icons8-loading_颜色反转-*.png",
`/common/seqanims/${folderName}/icons8-loading${addStr}-*.png`,
1000,
true
)
+8 -10
View File
@@ -16,17 +16,12 @@ import * as bgimg from "./bgimg"
import logger from "./logger/logger"
export default {
dayjs: dayjs,
animengine: animengine,
biliclient: null,
tools: tools,
funnytips: funnytips,
settings: settings,
jumpcheck: jumpcheck,
articletools: articletools,
htmlparser: htmlparser,
savedcontent: savedcontent,
bgimg: bgimg,
DEVICE_INFO: null,
async onCreate() {
console.log("app created")
@@ -34,24 +29,27 @@ export default {
global.logger = logger
console.log("create global animengine")
global.animengine = this.animengine
global.animengine = animengine
console.log("appinit > loadSettings")
settings.loadSettings()
global.settings = settings
console.log("appinit > initSavedContentManager")
await this.savedcontent.SavedContentManager.initialize()
await savedcontent.SavedContentManager.initialize()
global.savedcontent = savedcontent
console.log("appinit > initDeviceInfo")
this.DEVICE_INFO = await this.tools.getDeviceInformation()
global.DEVICE_INFO = this.DEVICE_INFO
global.DEVICE_INFO = await tools.getDeviceInformation()
global.DEVICE_SERIAL = await tools.getDeviceSerial()
global.DEVICE_NETWORK_TYPE = await tools.getNetworkType()
console.log("appinit > initBgImg")
this.bgimg.Init()
global.bgimg = this.bgimg
console.log("appinit > createBiliClient")
this.biliclient = new BilibiliClient()
global.biliclient = new BilibiliClient()
},
onDestroy() {
console.log("app destroyed")
@@ -50,7 +50,7 @@ export default {
}
},
onInit(){
this.anims.loading = new this.$app.$def.animengine.SequenceAnim(
this.anims.loading = new global.animengine.SequenceAnim(
"onlineImageComponent",
this.anims.loading_src,
28,
@@ -44,7 +44,7 @@ export default {
})
},
async InitScreenType(){
this.screentype = this.$app.$def.DEVICE_INFO.screenShape
this.screentype = global.DEVICE_INFO.screenShape
this.global_show = true
},
onInit(){
+8 -6
View File
@@ -13,12 +13,14 @@
</div>
<div if="{{useRowLayout}}" class="comp-root row">
<div class="bar bar-row" style="{{barRowStyle}}" @click="SwitchPage()">
<image src="/common/switch.png" style="object-fit: scale-down; width: 32px; height: 32px"></image>
<text style="font-weight: 600; font-size: 30px; margin-left: 15px">
{{ _parentVM.$t(title) }}
</text>
<div style="align-items: center; justify-content: center">
<image src="/common/switch.png" style="object-fit: scale-down; width: 32px; height: 32px"></image>
<text style="font-weight: 600; font-size: 30px; margin-left: 15px">
{{ _parentVM.$t(title) }}
</text>
</div>
<time-view style="position: absolute"></time-view>
</div>
<time-view style="position: absolute"></time-view>
</div>
</div>
</template>
@@ -42,7 +44,7 @@ export default {
})
},
onInit() {
const deviceInfo = this.$app.$def.DEVICE_INFO
const deviceInfo = global.DEVICE_INFO
if (deviceInfo.screenShape == "rect") {
this.barRowStyle["width"] = `${deviceInfo.screenWidth}px`
this.useRowLayout = true
+3 -2
View File
@@ -48,8 +48,9 @@ export default {
this.UpdateTime()
}, 2000)
const deviceInfo = this.$app.$def.DEVICE_INFO
const deviceInfo = global.DEVICE_INFO
if (deviceInfo.screenShape == "rect") {
this.compStyle["top"] = "0px"
this.compStyle["right"] = "100px"
this.useRectTime = true
}
@@ -81,6 +82,6 @@ export default {
.rect-txt {
font-size: 30px;
padding-bottom: 8.5px;
padding: 0px;
}
</style>
+3 -3
View File
@@ -12,9 +12,9 @@
<div if="{{useRowLayout}}" class="comp-root row">
<div class="titlebar bar-row" style="{{barRowStyle}}" @click="RouterBack()">
<image src="/common/icons8-back-100.png" style="width: 30px; height: 30px; margin-right: 5px"></image>
<text style="font-size: 32px; font-weight: normal; margin-top: 3px">{{ _parentVM.$t(title) }}</text>
<text style="font-size: 32px; font-weight: normal">{{ _parentVM.$t(title) }}</text>
<time-view style="position: relative;"></time-view>
</div>
<time-view style="position: absolute;"></time-view>
</div>
</div>
</template>
@@ -31,7 +31,7 @@ export default {
router.back()
},
onInit() {
const deviceInfo = this.$app.$def.DEVICE_INFO;
const deviceInfo = global.DEVICE_INFO;
if (deviceInfo.screenShape == "rect"){
this.barRowStyle["width"] = `${deviceInfo.screenWidth}px`
this.useRowLayout = true
+1 -1
View File
@@ -62,7 +62,7 @@ export default {
this.video.pic = "https:" + this.video.pic
}
const deviceInfo = this.$app.$def.DEVICE_INFO;
const deviceInfo = global.DEVICE_INFO;
if (deviceInfo.screenShape == "rect" || this.video.title.length > 25){
this.useColumnTitle = true;
// 手环Pro 系列
+6
View File
@@ -118,5 +118,11 @@
"logOut": "Log Out",
"donation": "Donate",
"about": "About the App"
},
"dynamic": {
"title": "Dynamic"
},
"user": {
"title": "User"
}
}
+6
View File
@@ -123,5 +123,11 @@
},
"opensoftware": {
"title": "开源软件声明"
},
"dynamic": {
"title": "动态"
},
"user": {
"title": "用户主页"
}
}
+1 -1
View File
@@ -72,7 +72,7 @@ export default {
DoScrollTip(){
global.logger.log("scroll bottom!")
this.showChangePageFX = true
this.anims.ChangePageFX = new this.$app.$def.animengine.DomAnim(
this.anims.ChangePageFX = new global.animengine.DomAnim(
"arealist",
{value: ""},
this.anims.ChangePageFXBTM,
+2 -2
View File
@@ -31,7 +31,7 @@ export default {
// 预留init时间
setTimeout(async() => {
var html = await this.$app.$def.biliclient.getEulaShowContent()
var html = await global.biliclient.getEulaShowContent()
this.content = this.$app.$def.htmlparser.parseContentHtml(html)
this.show_content = true
@@ -40,7 +40,7 @@ export default {
}, 1500);
},
Agree(){
this.$app.$def.settings.saveSettings({
global.settings.saveSettings({
agreedAllAgreements: true
})
@@ -46,7 +46,7 @@ export default {
}
},
async UpdateImage() {
const deviceinfo = this.$app.$def.DEVICE_INFO
const deviceinfo = global.DEVICE_INFO
const shape = deviceinfo.screenShape
this.steps = this.steps_map[shape] || []
+4 -4
View File
@@ -30,7 +30,7 @@ export default {
},
async PollQR() {
try {
const result = await this.$app.$def.biliclient.login(true, this.qrpoll_interval)
const result = await global.biliclient.login(true, this.qrpoll_interval)
if (result.success) {
global.logger.log("登录成功")
prompt.showToast({message: "登录成功"})
@@ -45,7 +45,7 @@ export default {
},
async GetQR() {
try {
const get_result = await this.$app.$def.biliclient.loginQR()
const get_result = await global.biliclient.loginQR()
this.qr_value = get_result.url
global.logger.log(get_result)
this.show_qr = true
@@ -61,7 +61,7 @@ export default {
onReady() {
const {pagediv_mgt, loading_img_src} = this.anims
this.anims.pagediv = new this.$app.$def.animengine.DomAnim(
this.anims.pagediv = new global.animengine.DomAnim(
"loginPage",
{value: "0"},
pagediv_mgt,
@@ -71,7 +71,7 @@ export default {
)
if (this.anims.pagediv) this.anims.pagediv.start()
global.animengine.defaults.loading.CreateLoadingAnimation(this)
global.animengine.defaults.loading.CreateLoadingAnimation(this, false)
this.anims.loading.start()
this.GetQR()
+3 -3
View File
@@ -19,20 +19,20 @@ export default {
}
},
async PreLogin() {
await this.$app.$def.biliclient.login(false, null)
await global.biliclient.login(false, null)
router.replace({
uri: "pages/app/features/main"
})
},
ReLogin(){
this.$app.$def.biliclient.logOut()
global.biliclient.logOut()
router.clear()
router.replace({
uri: "pages/app/entry/splash"
})
},
onInit() {
this.anims.login = new this.$app.$def.animengine.SequenceAnim(
this.anims.login = new global.animengine.SequenceAnim(
"prePage",
this.anims.loginsrc,
28,
+4 -4
View File
@@ -27,7 +27,7 @@ export default {
}
},
onShow() {
this.anims.splash = new this.$app.$def.animengine.DomAnim(
this.anims.splash = new global.animengine.DomAnim(
"splashPage",
this.anims.splashimg.margin_top_str,
this.anims.splashimg.margin_left_str,
@@ -35,7 +35,7 @@ export default {
0,
100
)
this.anims.splash_out = new this.$app.$def.animengine.DomAnim(
this.anims.splash_out = new global.animengine.DomAnim(
"splashPage",
this.anims.splashimg.margin_top_str,
this.anims.splashimg.margin_left_str,
@@ -48,7 +48,7 @@ export default {
this.anims.splash_out.start()
setTimeout(async() => {
if((await this.$app.$def.jumpcheck.NetworkCheck())){
if(!this.$app.$def.settings.SETTINGS.agreedAllAgreements){
if(!global.settings.SETTINGS.agreedAllAgreements){
router.replace({
uri: "pages/app/entry/eularead"
})
@@ -66,7 +66,7 @@ export default {
}, 1000)
},
onDestroy() {
this.$app.$def.animengine.clearPageAnims("splashPage")
global.animengine.clearPageAnims("splashPage")
}
}
</script>
+1 -1
View File
@@ -50,7 +50,7 @@ export default {
try{
this.anims.loading.start()
var dynamic = await this.$app.$def.biliclient.getDynamicList()
var dynamic = await global.biliclient.getDynamicList()
var split_result = this.SplitWaterfallArea(dynamic.items)
this.dynamic.render_split_1 = split_result.arr1
this.dynamic.render_split_2 = split_result.arr2
+5 -5
View File
@@ -64,8 +64,8 @@ export default {
},
async GetVids() {
try {
const {fresh_type, home_vid_count} = this.$app.$def.settings.SETTINGS
this.recommend_vids = await this.$app.$def.biliclient.getMainPageRecommendVideos(
const {fresh_type, home_vid_count} = global.settings.SETTINGS
this.recommend_vids = await global.biliclient.getMainPageRecommendVideos(
fresh_type,
home_vid_count
)
@@ -80,7 +80,7 @@ export default {
},
async checkUpdates() {
try {
const result = await this.$app.$def.biliclient.checkHyperbilibiliUpdates()
const result = await global.biliclient.checkHyperbilibiliUpdates()
if (result.update) {
prompt.showToast({message: result.msg, duration: 6000})
}
@@ -99,7 +99,7 @@ export default {
global.animengine.defaults.loading.CreateLoadingAnimation(this)
this.anims.loading.start()
this.anims.refresh = new this.$app.$def.animengine.DomAnim(
this.anims.refresh = new global.animengine.DomAnim(
"mainPage",
{value: "0px"},
refresh_bottom,
@@ -109,7 +109,7 @@ export default {
)
},
onDestroy() {
this.$app.$def.animengine.clearPageAnims("mainPage")
global.animengine.clearPageAnims("mainPage")
}
}
</script>
+2 -2
View File
@@ -58,7 +58,7 @@ export default {
router.push({
uri: "pages/folders/favfolders",
params: {
user_mid: this.$app.$def.biliclient.accountInfo.mid
user_mid: global.biliclient.accountInfo.mid
}
})
},
@@ -82,7 +82,7 @@ export default {
}
},
onInit() {
this.accountInfo = this.$app.$def.biliclient.accountInfo
this.accountInfo = global.biliclient.accountInfo
this.UpdateShow()
}
}
@@ -36,7 +36,7 @@ export default {
}
},
async OpenArticle(id) {
var html = await this.$app.$def.savedcontent.SavedContentManager.getContent(id)
var html = await global.savedcontent.SavedContentManager.getContent(id)
router.push({
uri: "pages/article/articleshow",
params: {
@@ -47,7 +47,7 @@ export default {
})
},
async LoadContent() {
var origin_content = await this.$app.$def.savedcontent.SavedContentManager.listAllContent()
var origin_content = await global.savedcontent.SavedContentManager.listAllContent()
global.logger.log(origin_content)
this.content = this.PatchContent(origin_content)
global.logger.log(this.content)
@@ -76,7 +76,7 @@ export default {
buildinfo: buildinfo
},
onInit() {
this.version = "v" + this.$app.$def.biliclient.version
this.version = "v" + global.biliclient.version
global.logger.log(this.buildinfo)
},
OpenDisclaimer() {
+8 -8
View File
@@ -86,12 +86,12 @@ export default {
case "enable_full_anim":
if (this.enableFullAnimation) {
this.enableFullAnimation = false
this.$app.$def.settings.saveSettings({
global.settings.saveSettings({
enableFullAnimation: this.enableFullAnimation
})
} else {
this.enableFullAnimation = true
this.$app.$def.settings.saveSettings({
global.settings.saveSettings({
enableFullAnimation: this.enableFullAnimation
})
prompt.showToast({
@@ -111,7 +111,7 @@ export default {
} else {
new_fresh_type = this.countset.fresh_type_min
}
this.$app.$def.settings.saveSettings({
global.settings.saveSettings({
fresh_type: new_fresh_type
})
setTimeout(() => {
@@ -125,7 +125,7 @@ export default {
} else {
new_home_vid_count = this.countset.home_vid_count_min
}
this.$app.$def.settings.saveSettings({
global.settings.saveSettings({
home_vid_count: new_home_vid_count
})
setTimeout(() => {
@@ -135,16 +135,16 @@ export default {
}
},
logout() {
this.$app.$def.biliclient.logOut()
global.biliclient.logOut()
router.clear()
router.replace({
uri: "pages/app/entry/splash"
})
},
UpdateNumView() {
this.fresh_type = this.$app.$def.settings.SETTINGS.fresh_type
this.home_vid_count = this.$app.$def.settings.SETTINGS.home_vid_count
this.enableFullAnimation = this.$app.$def.settings.SETTINGS.enableFullAnimation
this.fresh_type = global.settings.SETTINGS.fresh_type
this.home_vid_count = global.settings.SETTINGS.home_vid_count
this.enableFullAnimation = global.settings.SETTINGS.enableFullAnimation
},
onInit() {
this.UpdateNumView()
+2 -2
View File
@@ -32,9 +32,9 @@ export default {
prompt.showToast({
message: "开始缓存"
})
var articleHtml = await this.$app.$def.biliclient.getArticle(this.cvid, false)
var articleHtml = await global.biliclient.getArticle(this.cvid, false)
global.logger.log("articleHtml=" + articleHtml)
var id = await this.$app.$def.savedcontent.SavedContentManager.storeContent(this.cvtitle, articleHtml, "article")
var id = await global.savedcontent.SavedContentManager.storeContent(this.cvtitle, articleHtml, "article")
global.logger.log("id=" + id)
prompt.showToast({
message: "专栏 " + this.cvtitle + " 缓存完毕!存储id=" + id,
+2 -2
View File
@@ -67,7 +67,7 @@ export default {
article_html = this.article_html
}
else{
article_html = await this.$app.$def.biliclient.getArticle(this.cvid)
article_html = await global.biliclient.getArticle(this.cvid)
}
const article = this.$app.$def.articletools.parseArticlePageHtml(article_html)
@@ -76,7 +76,7 @@ export default {
let article_full = this.$app.$def.htmlparser.parseContentHtml(article.readInfo.content, false)
this.$app.$def.articletools.PatchArticleContent(article_full)
//this.article_content = this.SplitArticle(article_full, this.$app.$def.settings.SETTINGS.article_split_dom_count)
//this.article_content = this.SplitArticle(article_full, global.settings.SETTINGS.article_split_dom_count)
this.article_content = article_full
this.max_page_num = this.article_content.length
+3 -3
View File
@@ -42,9 +42,9 @@ export default {
},
async LoadFolders() {
try {
const folderlist = await this.$app.$def.biliclient.getUserFavouriteFolders(this.user_mid)
const folderlist = await global.biliclient.getUserFavouriteFolders(this.user_mid)
const folderPromises = folderlist.list.map((folder) =>
this.$app.$def.biliclient.getFavouriteFolderMetadata(folder.id)
global.biliclient.getFavouriteFolderMetadata(folder.id)
)
this.folders = await Promise.all(folderPromises)
@@ -61,7 +61,7 @@ export default {
this.LoadFolders()
},
onDestroy() {
this.$app.$def.animengine.clearPageAnims("favfoldersPage")
global.animengine.clearPageAnims("favfoldersPage")
}
}
</script>
@@ -76,13 +76,13 @@ export default {
this.anims.loading.start()
try {
const medialist = await this.$app.$def.biliclient.getFavouriteFolderContent(
const medialist = await global.biliclient.getFavouriteFolderContent(
this.mlid,
this.current_pn,
5
)
const videoInfoPromises = medialist.medias.map((media) =>
this.$app.$def.biliclient.getVideoInfoByBVID(media.bvid)
global.biliclient.getVideoInfoByBVID(media.bvid)
)
// 并行获取所有视频信息
+2 -2
View File
@@ -28,12 +28,12 @@ export default {
this.anims.loading.start()
try {
const medialist = await this.$app.$def.biliclient.getWatchHistory(
const medialist = await global.biliclient.getWatchHistory(
1,
15
)
const videoInfoPromises = medialist.map((media) =>
this.$app.$def.biliclient.getVideoInfoByBVID(media.bvid)
global.biliclient.getVideoInfoByBVID(media.bvid)
)
this.history = await Promise.all(videoInfoPromises)
} catch (error) {
+4 -4
View File
@@ -45,7 +45,7 @@ export default {
this.anims.loading.start()
this.anims.show_loading = true
this.sessions = (await this.$app.$def.biliclient.getDMSessions(1, 2)).session_list
this.sessions = (await global.biliclient.getDMSessions(1, 2)).session_list
// 裁切至10个
this.sessions.length = Math.min(this.sessions.length, 10);
@@ -60,7 +60,7 @@ export default {
}
})
this.session_cards = await this.$app.$def.biliclient.getMultiUserInfoByUID(session_uids)
this.session_cards = await global.biliclient.getMultiUserInfoByUID(session_uids)
this.anims.loading.stop()
this.anims.show_loading = false
@@ -75,9 +75,9 @@ export default {
router.push({
uri: "pages/message/dmpage",
params: {
myId: this.$app.$def.biliclient.accountInfo.mid,
myId: global.biliclient.accountInfo.mid,
targetId: targetId,
myPic: this.$app.$def.biliclient.accountInfo.face,
myPic: global.biliclient.accountInfo.face,
targetPic: this.session_cards[`${targetId}`].face
}
})
+2 -2
View File
@@ -87,7 +87,7 @@ export default {
async SendMsg() {
// 发送消息
try {
const result = await this.$app.$def.biliclient.SendDMSessionMessage(
const result = await global.biliclient.SendDMSessionMessage(
this.targetId,
1,
this.input_text
@@ -166,7 +166,7 @@ export default {
async UpdateMessages(initial = false) {
// 更新消息
try {
let response = await this.$app.$def.biliclient.getDMSessionMessage(1, this.targetId, 30)
let response = await global.biliclient.getDMSessionMessage(1, this.targetId, 30)
let newMessages = response.messages.reverse()
if (
+1 -1
View File
@@ -49,7 +49,7 @@ export default {
data: {}
},
async LoadNotify(){
this.data = await this.$app.$def.biliclient.getMessageNotifyFeed()
this.data = await global.biliclient.getMessageNotifyFeed()
},
ShowOnPhoneTips(){
prompt.showToast({
+4 -4
View File
@@ -59,14 +59,14 @@ export default {
let result
try {
result = this.secmode
? await this.$app.$def.biliclient.GiveTreeReply(
? await global.biliclient.GiveTreeReply(
this.type,
this.oid,
this.reply_target,
this.rootrpid,
content
)
: await this.$app.$def.biliclient.GiveSecReply(
: await global.biliclient.GiveSecReply(
this.type,
this.oid,
this.reply_target,
@@ -124,13 +124,13 @@ export default {
try {
const replyData = this.secmode
? await this.$app.$def.biliclient.getSecReplies(
? await global.biliclient.getSecReplies(
this.type,
this.oid,
this.rootrpid,
this.current_pn
)
: await this.$app.$def.biliclient.getReplies(this.type, this.oid, this.current_pn)
: await global.biliclient.getReplies(this.type, this.oid, this.current_pn)
this.replies = replyData.replies
} catch (error) {
+1 -1
View File
@@ -38,7 +38,7 @@ export default {
reply_clone: null
},
async LikeReply() {
var result = await this.$app.$def.biliclient.LikeReply(
var result = await global.biliclient.LikeReply(
this.type,
this.oid,
this.reply_clone.rpid,
+2 -2
View File
@@ -53,7 +53,7 @@ export default {
this.anims.show_loading = true
this.anims.loading.start()
this.hotwords = await this.$app.$def.biliclient.getSearchHotwords()
this.hotwords = await global.biliclient.getSearchHotwords()
this.showHotwordsList = true
this.anims.loading.stop()
@@ -66,7 +66,7 @@ export default {
this.GetHotWords()
},
onDestroy(){
this.$app.$def.animengine.clearPageAnims("searchPage")
global.animengine.clearPageAnims("searchPage")
}
}
</script>
@@ -248,12 +248,12 @@ export default {
this.anims.loading.start()
// 搜视频+推荐用户
this.search = await this.$app.$def.biliclient.searchContents(this.keyword, 10)
this.search = await global.biliclient.searchContents(this.keyword, 10)
// 深度搜索用户
var users = await this.$app.$def.biliclient.searchContentWithType(this.keyword, "bili_user")
var users = await global.biliclient.searchContentWithType(this.keyword, "bili_user")
this.search.users = users.result
// 搜索专栏
var articles = await this.$app.$def.biliclient.searchContentWithType(this.keyword, "article")
var articles = await global.biliclient.searchContentWithType(this.keyword, "article")
this.search.articles = articles.result
await this.PatchSearchResult()
+9 -9
View File
@@ -87,12 +87,12 @@ export default {
})
},
async GetVideoDetail() {
this.vid = await this.$app.$def.biliclient.getVideoInfoByBVID(this.bvid)
this.vid = await global.biliclient.getVideoInfoByBVID(this.bvid)
},
async UpdateVideoToolbarStatus() {
this.stared = await this.$app.$def.biliclient.isVideoStaredByBVID(this.bvid)
this.liked = await this.$app.$def.biliclient.isVideoLikedByBVID(this.bvid)
this.coined = await this.$app.$def.biliclient.isVideoCoinedByBVID(this.bvid)
this.stared = await global.biliclient.isVideoStaredByBVID(this.bvid)
this.liked = await global.biliclient.isVideoLikedByBVID(this.bvid)
this.coined = await global.biliclient.isVideoCoinedByBVID(this.bvid)
this.UpdateToolBarIconSrc()
},
UpdateToolBarIconSrc() {
@@ -107,7 +107,7 @@ export default {
this.AddToFav()
},
async LikeClick() {
var result = await this.$app.$def.biliclient.LikeVideo(this.vid.bvid, 1)
var result = await global.biliclient.LikeVideo(this.vid.bvid, 1)
const message =
result.code === 0 ? "点赞成功" : `点赞失败,错误代码:${result.code} 原因:${result.message}`
prompt.showToast({
@@ -117,7 +117,7 @@ export default {
this.UpdateVideoToolbarStatus()
},
async CoinClick() {
var result = await this.$app.$def.biliclient.CoinVideo(this.vid.bvid, 1)
var result = await global.biliclient.CoinVideo(this.vid.bvid, 1)
const message =
result.code === 0 ? "投币成功" : `投币失败,错误代码:${result.code} 原因:${result.message}`
prompt.showToast({
@@ -135,7 +135,7 @@ export default {
})
}
const result = await this.$app.$def.biliclient.GiveReply(
const result = await global.biliclient.GiveReply(
1,
this.vid.aid,
evt.detail.content
@@ -160,7 +160,7 @@ export default {
},
async AISummary() {
const summary =
(await this.$app.$def.biliclient.getVideoAISummaryByBVID(
(await global.biliclient.getVideoAISummaryByBVID(
this.vid.bvid,
this.vid.cid,
this.vid.owner.mid
@@ -171,7 +171,7 @@ export default {
})
},
async AddToFav() {
const result = await this.$app.$def.biliclient.starVideoToDefaultFavFolderByBVID(this.bvid)
const result = await global.biliclient.starVideoToDefaultFavFolderByBVID(this.bvid)
const message = result ? "收藏失败,请重试,或重新登录后再试" : "收藏成功"
prompt.showToast({message})
this.UpdateVideoToolbarStatus()
+5 -8
View File
@@ -1,29 +1,26 @@
import { storage } from "./tsimports"
interface SettingsInterface {
fresh_type: number;
fresh_type: number; //视频推荐相关度,范围1-3,根据大数据推送
home_vid_count: number;
// 专栏articleshow的每页dom节点裁切数量(单页最大dom数)
article_split_dom_count: number;
enableFullAnimation: boolean;
// 下面的设置项将不在设置页面中展示
agreedAllAgreements: boolean;
// 校验字段
_loadedSettings: boolean;
enableUserTracker: boolean;
}
// 初始设置
export let SETTINGS: SettingsInterface = {
fresh_type: 3, //视频推荐相关度,范围1-3,根据大数据推送
fresh_type: 3,
home_vid_count: 10,
// 专栏articleshow的每页dom节点裁切数量(单页最大dom数)
article_split_dom_count: 9999,
enableFullAnimation: false,
agreedAllAgreements: false, // 是否已同意所有协议(用户协议 隐私协议 etc.)
_loadedSettings: false
enableUserTracker: true
};
export function loadSettings(): void {
+27 -1
View File
@@ -1,4 +1,4 @@
import { device } from "./tsimports"
import { device, network } from "./tsimports"
export function formatNumber(num: number): string {
if (num < 1000) {
@@ -39,6 +39,32 @@ export function getDeviceInformation(): Promise<any> {
});
}
export function getDeviceSerial(): Promise<any> {
return new Promise((resolve, reject) => {
device.getSerial({
success: (data) => {
resolve(data.serial);
},
fail: (error) => {
reject(error);
}
});
});
}
export function getNetworkType(): Promise<any> {
return new Promise((resolve, reject) => {
network.getType({
success: (data) => {
resolve(data.type);
},
fail: (error) => {
reject(error);
}
});
});
}
export function unicodeToString(unicodeStr) {
return unicodeStr.replace(/\\u([\dA-F]{4})/gi, function (match, grp) {
return String.fromCharCode(parseInt(grp, 16));
+83
View File
@@ -0,0 +1,83 @@
import { fetch } from "./tsimports"
const TRACKER_URL: string = "https://tracker.hyperbili.astralsight.space/trackreport"
const TRACKER_SERVER_PROTOCOL_VERSION = "v1"
interface TrackedInfoUploadPacket {
event: TIUPEvents,
deviceInfo: TIUPDeviceInfo,
version: string,
payload: TIUPStartupPayload | TIUPRouterPayload | TIUPLoginPayload | TIUPLogPayload | TIUPErrorReportPayload
}
enum TIUPEvents {
ON_STARTUP,
ON_LOGIN,
ON_ROUTER_PUSH,
ON_LOG_INTERVAL,
ON_ERROR_REPORT
}
enum TIUPErrorSeverity {
GENERAL,
FATAL
}
interface TIUPDeviceInfo {
name: string,
serial: string,
networkType: string
}
interface TIUPStartupPayload {
startTime: string
}
interface TIUPRouterPayload {
currentPage: string,
nextPage: string,
routerStack: string
}
interface TIUPLoginPayload {
accountName: string,
accountUID: string
}
interface TIUPLogPayload {
logString: string
}
interface TIUPErrorReportPayload {
severity: TIUPErrorSeverity,
errorInfo: string,
logString: string,
callStack: string
}
function canUploadTrack(): boolean {
if (global.settings.SETTINGS.agreedAllAgreements && global.settings.SETTINGS.enableUserTracker) {
return true;
}
return false;
}
function uploadTrack(event: TIUPEvents, payload) {
const data: TrackedInfoUploadPacket = {
event,
deviceInfo: {
name: global.DEVICE_INFO.product,
serial: global.DEVICE_SERIAL,
networkType: global.DEVICE_NETWORK_TYPE
},
version: global.biliclient.version,
payload
};
if (canUploadTrack()) {
fetch.fetch({
url: `${TRACKER_URL}/${TRACKER_SERVER_PROTOCOL_VERSION}/fetch`,
data
})
}
}
+52 -52
View File
@@ -2,24 +2,24 @@
# yarn lockfile v1
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/compiler/-/compiler-1.1.5-beta.1.tgz#37ea2bfce92e0f064f67ce3f650a286feb2bb57e"
integrity sha512-vnhKmIfKLPovWlym/rP5BQV7nzEFf6JyzBKZHdk396czg4NZoaoM2c0Zg77MpT7qa68VD1IYgVhuvAnwNDwN3Q==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/compiler/-/compiler-1.1.5-beta.2.tgz#d51d53047ca9c597456e8e26966e7329a5660e1a"
integrity sha512-ZfMSyzobET5I6jzLKm7DTumnrK2eySOsQ3c7Vl16YjdR3YXRWtNe3kh5EOD5ZdXKGICwjYoAokcTsEObPLAHAw==
dependencies:
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
css "^2.2.4"
css-select "^5.1.0"
css-what "^3.0.0"
lodash "^4.17.21"
parse5 "^3.0.3"
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/debugger/-/debugger-1.1.5-beta.1.tgz#cf65d958ee3161e822ab42f4820f8a6fce127e42"
integrity sha512-poVSQ8PZLKV2DXUHOsTne4YFmdIyFoPtXWyTGAAQ/VURG7b0LBIfM0NpnH+ZD5Kr6Tt8bzDRohZpJaZX6KXkpA==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/debugger/-/debugger-1.1.5-beta.2.tgz#86edaf9ad4fe0937eb4d5c383b7af377a3e6e2ce"
integrity sha512-XVMIkiZIOBCGrZOwT2uN6NyzBnOzmLyRVTeTG84mrLaUzq1Lg7/uTFQmesTpNkZHauPSBoQUMvUW6NVVaDy+aw==
dependencies:
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
"@hap-toolkit/chrome-devtools-frontend" "^1.1.2"
"@sentry/node" "^5.26.0"
adb-commander "^0.1.9"
@@ -33,14 +33,14 @@
qr-image "^3.2.0"
socket.io "^2.3.0"
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/dsl-vue/-/dsl-vue-1.1.5-beta.1.tgz#42213b7d461027695abe44a90308cea6e08261c7"
integrity sha512-Sbh2UB1zT1uDDNDz5uB8oS4FhAP60T4cFrdZ272mSJn9BN+i+iljd10i8feYb9B2r+mg+yUoPeTvn+DiUZwlOw==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/dsl-vue/-/dsl-vue-1.1.5-beta.2.tgz#b0c6a2cb99d05b1c85a9f1ad10b0a95a7b0fffaf"
integrity sha512-QQRA0UwAJF+LqS0y1XJq33KqQlyuvJbpKw/SwPFn70sy64aT0nqEYf2vIYzAyYplg5itwgdnuriBK12X1nPdXw==
dependencies:
"@aiot-toolkit/compiler" "1.1.5-beta.1"
"@aiot-toolkit/packager" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/compiler" "1.1.5-beta.2"
"@aiot-toolkit/packager" "1.1.5-beta.2"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
css-loader "^5.0.1"
md5 "^2.2.1"
mini-css-extract-plugin "^1.3.0"
@@ -49,14 +49,14 @@
vue-template-compiler "^2.6.11"
webpack "5.88.1"
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/dsl-xvm/-/dsl-xvm-1.1.5-beta.1.tgz#415ac6ac9f19f6f2a85d142622228d9ba1d2f5bb"
integrity sha512-7WH671LyW7F2ActVvU6lmjaTSQUkZGPnXanvxLjxGoBMENYPpmiUBfGyoMRdMz26LanvQdDMhY+CA65AMUCJAg==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/dsl-xvm/-/dsl-xvm-1.1.5-beta.2.tgz#60b97597149b6870087ef98c558336610d1c06b3"
integrity sha512-2+Ctmzok1T5D7qlv9YjzKbObZV08iR7pizpMkWP7KiTWAaMJsRyag7HYaOVUfy1/yym2TZaMBcl0XWBLfcO+Tw==
dependencies:
"@aiot-toolkit/compiler" "1.1.5-beta.1"
"@aiot-toolkit/packager" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/compiler" "1.1.5-beta.2"
"@aiot-toolkit/packager" "1.1.5-beta.2"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
babel-loader "^8.3.0"
babel-plugin-minify-dead-code-elimination "^0.5.2"
css-loader "^5.0.1"
@@ -72,13 +72,13 @@
resolved "https://registry.yarnpkg.com/@aiot-toolkit/jsc/-/jsc-1.0.7.tgz#c5c773ad532e9e274e978ca9bdb20fd0dcacfcb0"
integrity sha512-qW/Gy/02L+o3aMpu4KcxCX0RTTnRGYyDq62PrOvx/Siz7iFE2g7HV9Ib7mbp0iGXVqmA3W1cVZX3X9SgrQjqkQ==
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/packager/-/packager-1.1.5-beta.1.tgz#8f298ba0f4c343c55a207f1bde450b34051d1285"
integrity sha512-TgQH5sFbSSQH2OULeEAH/jU9QUZZTaPRrn0y+Ea12iNzlPVpRQcXbZqzryyiff8tIOGDjdvUdDUoauniUCtGGw==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/packager/-/packager-1.1.5-beta.2.tgz#fdb51f79c7ef9af55ab1959ea1aad0ef2af2de31"
integrity sha512-T7z9ZqGGbfQ4zYSOCqrS8QPBmtFWaxiVSm1Ontd5AZVRWvsps8u5BQt3NR5RY75evCymgumZVIF9f/trYs1LBw==
dependencies:
"@aiot-toolkit/compiler" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/compiler" "1.1.5-beta.2"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
"@babel/core" "^7.9.6"
"@babel/generator" "^7.9.6"
"@babel/parser" "^7.9.6"
@@ -108,14 +108,14 @@
webpack-bundle-analyzer "^3.5.0"
webpack-sources "3.2.3"
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/server/-/server-1.1.5-beta.1.tgz#5647c88b183322ac8eb5661682d96ae6b8eb8586"
integrity sha512-iog8ymJQX8WGdIm1ZmejDjznFU5sg/SC3mLU7b8TLH873xmRlSA4Go9/LFuhQEqqZtZKud76Aefn0AgODAxMiQ==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/server/-/server-1.1.5-beta.2.tgz#5059996da314562d0186e75240e59fb6599990a0"
integrity sha512-cPCAHdkFJBUYQieUy3+YKPSlT7xPWyvXjYiwie0TmtLYFnly4kYkiBB4GKoeCpF5UlEsfUhKsMsQ6EFzy65CNg==
dependencies:
"@aiot-toolkit/debugger" "1.1.5-beta.1"
"@aiot-toolkit/packager" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/debugger" "1.1.5-beta.2"
"@aiot-toolkit/packager" "1.1.5-beta.2"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
"@babel/runtime" "^7.9.6"
jszip "^3.4.0"
koa "^2.11.0"
@@ -128,10 +128,10 @@
portfinder "^1.0.26"
qr-image "^3.2.0"
"@aiot-toolkit/[email protected].1":
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/shared-utils/-/shared-utils-1.1.5-beta.1.tgz#773c0e9b3cc5e741ba8a3e833af248eaaaab6765"
integrity sha512-naSRoYgEMmoFRDNLIGTU7M9V/HY3KKEb1MCY8c8bMop5VJY064qBkY1OMYlQYdSagKrj+AON0s5WBcfYx7CxMA==
"@aiot-toolkit/[email protected].2":
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/@aiot-toolkit/shared-utils/-/shared-utils-1.1.5-beta.2.tgz#870eccc9a93a28d85894548ddbd38ad48f7a3cfa"
integrity sha512-snohtk9Lz36JH4vWc3unHnWH8nyGYljLedxAmvfN7N8bGs4HrHKsn3koruU3XnUBkkmhKntNYw5F06GGpRGpJA==
dependencies:
chalk "^2.4.2"
google-protobuf "^3.21.2"
@@ -1624,18 +1624,18 @@ agent-base@6:
dependencies:
debug "4"
[email protected].1:
version "1.1.5-beta.1"
resolved "https://registry.yarnpkg.com/aiot-toolkit/-/aiot-toolkit-1.1.5-beta.1.tgz#7526c913d1df07191285a805f156497bbe2a90cf"
integrity sha512-VU6zA3JD7FpMlPf0YTvWv+PySfy/Q+VFoL4wKYy+cr1+vVHgXNeiCIl700J4D/AQf3isdS1oKD2ct8AGVxeupw==
[email protected].2:
version "1.1.5-beta.2"
resolved "https://registry.yarnpkg.com/aiot-toolkit/-/aiot-toolkit-1.1.5-beta.2.tgz#f313fc1d911bb8c3d239fc34a0ca977f8975a5ae"
integrity sha512-IMhikE20u2F8PcLsHLfUbfsXvQLLOMf5stHPNp9FpVAMfQNUVxTxwtyAzPH4taaMULZKRdGWjXZv56mSiijanA==
dependencies:
"@aiot-toolkit/compiler" "1.1.5-beta.1"
"@aiot-toolkit/debugger" "1.1.5-beta.1"
"@aiot-toolkit/dsl-vue" "1.1.5-beta.1"
"@aiot-toolkit/dsl-xvm" "1.1.5-beta.1"
"@aiot-toolkit/packager" "1.1.5-beta.1"
"@aiot-toolkit/server" "1.1.5-beta.1"
"@aiot-toolkit/shared-utils" "1.1.5-beta.1"
"@aiot-toolkit/compiler" "1.1.5-beta.2"
"@aiot-toolkit/debugger" "1.1.5-beta.2"
"@aiot-toolkit/dsl-vue" "1.1.5-beta.2"
"@aiot-toolkit/dsl-xvm" "1.1.5-beta.2"
"@aiot-toolkit/packager" "1.1.5-beta.2"
"@aiot-toolkit/server" "1.1.5-beta.2"
"@aiot-toolkit/shared-utils" "1.1.5-beta.2"
"@babel/core" "^7.9.6"
"@babel/plugin-syntax-jsx" "^7.8.3"
"@babel/preset-env" "^7.9.6"