Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 14 additions & 14 deletions src/functions/Activities.ts
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,16 @@ export default class Activities {
await new BrowserSearchOnBing(this.bot).doSearchOnBing(promotion, page)
}

doDailySet = async (data: DashboardData): Promise<void> => {
await new DailySet(this.bot).run(data)
doDailySet = async (data: DashboardData): Promise<boolean> => {
return await new DailySet(this.bot).run(data)
}

doMorePromotions = async (data: DashboardData): Promise<void> => {
await new MorePromotions(this.bot).run(data)
doMorePromotions = async (data: DashboardData): Promise<boolean> => {
return await new MorePromotions(this.bot).run(data)
}

doPunchCardsMobile = async (data: DashboardData): Promise<void> => {
await new PunchCards(this.bot).runMobile(data)
doPunchCardsMobile = async (data: DashboardData): Promise<boolean> => {
return await new PunchCards(this.bot).runMobile(data)
}

doPunchCardsDesktop = async (): Promise<void> => {
Expand All @@ -93,9 +93,9 @@ export default class Activities {
await claimReward.claimReward(child, parentId)
}

doActivateSearchPerk = async (data: DashboardData): Promise<void> => {
doActivateSearchPerk = async (data: DashboardData): Promise<boolean> => {
const activateSearchPerk = new ActivateSearchPerk(this.bot)
await activateSearchPerk.activate(data)
return await activateSearchPerk.activate(data)
}

doVisualSearch = async (data: DashboardData): Promise<number> => {
Expand All @@ -108,18 +108,18 @@ export default class Activities {
await urlReward.doAppReward(promotion)
}

doReadToEarn = async (): Promise<void> => {
doReadToEarn = async (): Promise<boolean> => {
const readToEarn = new ReadToEarn(this.bot)
await readToEarn.doReadToEarn()
return await readToEarn.doReadToEarn()
}

doDailyCheckIn = async (): Promise<void> => {
doDailyCheckIn = async (): Promise<boolean> => {
const dailyCheckIn = new DailyCheckIn(this.bot)
await dailyCheckIn.doDailyCheckIn()
return await dailyCheckIn.doDailyCheckIn()
}

doAppPromotions = async (data: AppDashboardData): Promise<void> => {
await new AppPromotions(this.bot).run(data)
doAppPromotions = async (data: AppDashboardData): Promise<boolean> => {
return await new AppPromotions(this.bot).run(data)
}

doEdgeBrowsing = async (data: DashboardData, signal?: AbortSignal): Promise<void> => {
Expand Down
12 changes: 7 additions & 5 deletions src/functions/activities/api/ActivateSearchPerk.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,15 +46,15 @@ export function detectSearchMultiplierPerk(dashboard: Dashboard): SearchMultipli
}

export class ActivateSearchPerk extends BaseActivity {
public async activate(data: DashboardData) {
public async activate(data: DashboardData): Promise<boolean> {
const perk = detectSearchMultiplierPerk(data.dashboard)
if (!perk) {
this.bot.logger.debug(
this.bot.isMobile,
'ACTIVATE-SEARCH-PERK',
'dashboard 上没有搜索倍数加成'
)
return
return false
}

const live = await this.bot.browser.func.ensureOffer(perk.offerId)
Expand All @@ -64,7 +64,7 @@ export class ActivateSearchPerk extends BaseActivity {
'ACTIVATE-SEARCH-PERK',
`dashboard 上存在 ${perk.multiplier}x 搜索加成但页面快照中缺失 - 无法激活 | offerId=${perk.offerId}`
)
return
return false
}

if (!live.reportable) {
Expand All @@ -74,7 +74,7 @@ export class ActivateSearchPerk extends BaseActivity {
`${perk.multiplier}x 搜索加成已激活(或不可激活) | offerId=${perk.offerId}`,
'green'
)
return
return false
}

const actionId = this.bot.nextActions.reportActivity
Expand All @@ -84,7 +84,7 @@ export class ActivateSearchPerk extends BaseActivity {
'ACTIVATE-SEARCH-PERK',
'跳过:bundle 中未发现 "reportActivity" action id'
)
return
return false
}

const activityType = live.activityType ?? 11
Expand Down Expand Up @@ -135,5 +135,7 @@ export class ActivateSearchPerk extends BaseActivity {
`激活搜索加成出错 | offerId=${perk.offerId} | message=${error instanceof Error ? error.message : String(error)}`
)
}

return true
}
}
5 changes: 3 additions & 2 deletions src/functions/activities/app/AppPromotions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { BaseActivity } from '../BaseActivity'
import type { AppDashboardData } from '../../../interface/AppDashBoardData'

export class AppPromotions extends BaseActivity {
public async run(data: AppDashboardData): Promise<void> {
public async run(data: AppDashboardData): Promise<boolean> {
const pending = data.response.promotions.filter(promotion => {
const attributes = promotion.attributes
return (
Expand All @@ -18,7 +18,7 @@ export class AppPromotions extends BaseActivity {
'APP-PROMOTIONS',
'所有"应用推广"项目已完成'
)
return
return false
}

this.bot.logger.info(
Expand All @@ -33,5 +33,6 @@ export class AppPromotions extends BaseActivity {
}
}
this.bot.logger.info(this.bot.isMobile, 'APP-PROMOTIONS', '"应用推广"项目处理完毕')
return true
}
}
6 changes: 4 additions & 2 deletions src/functions/activities/app/DailyCheckIn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ export class DailyCheckIn extends BaseActivity {

private oldBalance: number = this.bot.userData.currentPoints

public async doDailyCheckIn() {
public async doDailyCheckIn(): Promise<boolean> {
if (!this.bot.accessToken) {
this.bot.logger.warn(
this.bot.isMobile,
'DAILY-CHECK-IN',
'跳过:应用访问令牌不可用,此活动需要它!'
)
return
return false
}

this.oldBalance = Number(this.bot.userData.currentPoints ?? 0)
Expand Down Expand Up @@ -68,6 +68,8 @@ export class DailyCheckIn extends BaseActivity {
`每日签到出错 | message=${error instanceof Error ? error.message : String(error)}`
)
}

return true
}

private async submitDaily() {
Expand Down
6 changes: 4 additions & 2 deletions src/functions/activities/app/ReadToEarn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ import { randomBytes } from 'crypto'
import { BaseActivity } from '../BaseActivity'

export class ReadToEarn extends BaseActivity {
public async doReadToEarn() {
public async doReadToEarn(): Promise<boolean> {
if (!this.bot.accessToken) {
this.bot.logger.warn(
this.bot.isMobile,
'READ-TO-EARN',
'跳过:应用访问令牌不可用,此活动需要它!'
)
return
return false
}

const delayMin = this.bot.config.searchSettings.readDelay.min
Expand Down Expand Up @@ -129,5 +129,7 @@ export class ReadToEarn extends BaseActivity {
`读文赚积分出错 | message=${error instanceof Error ? error.message : String(error)}`
)
}

return true
}
}
5 changes: 3 additions & 2 deletions src/functions/activities/rewards/DailySet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ import type { DashboardData } from '../../../interface/DashboardData'
import { PromotionActivityRunner } from './PromotionActivityRunner'

export class DailySet extends BaseActivity {
public async run(data: DashboardData): Promise<void> {
public async run(data: DashboardData): Promise<boolean> {
const today = this.bot.utils.getFormattedDate()
const pending =
data.dashboard.dailySetPromotions[today]?.filter(item => !item.complete && item.pointProgressMax > 0) ?? []

if (!pending.length) {
this.bot.logger.info(this.bot.isMobile, 'DAILY-SET', '所有"每日任务"项目已完成')
return
return false
}

this.bot.logger.info(
Expand All @@ -20,5 +20,6 @@ export class DailySet extends BaseActivity {
)
await new PromotionActivityRunner(this.bot).run(pending)
this.bot.logger.info(this.bot.isMobile, 'DAILY-SET', '"每日任务"项目处理完毕')
return true
}
}
5 changes: 3 additions & 2 deletions src/functions/activities/rewards/MorePromotions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import type { BasePromotion, DashboardData } from '../../../interface/DashboardD
import { PromotionActivityRunner } from './PromotionActivityRunner'

export class MorePromotions extends BaseActivity {
public async run(data: DashboardData): Promise<void> {
public async run(data: DashboardData): Promise<boolean> {
const promotions = [
...new Map(
[
Expand All @@ -22,7 +22,7 @@ export class MorePromotions extends BaseActivity {
'MORE-PROMOTIONS',
'所有"更多推广"项目已完成'
)
return
return false
}

this.bot.logger.info(
Expand All @@ -32,6 +32,7 @@ export class MorePromotions extends BaseActivity {
)
await new PromotionActivityRunner(this.bot).run(pending)
this.bot.logger.info(this.bot.isMobile, 'MORE-PROMOTIONS', '"更多推广"项目处理完毕')
return true
}

private isActionable(promotion: BasePromotion): boolean {
Expand Down
12 changes: 7 additions & 5 deletions src/functions/activities/rewards/PunchCards.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,16 @@ import type { ParentQuest, QuestChild } from '../../../browser/ReactFunc'
import type { BasePromotion, DashboardData, PunchCard } from '../../../interface/DashboardData'

export class PunchCards extends BaseActivity {
public async runMobile(data: DashboardData): Promise<void> {
public async runMobile(data: DashboardData): Promise<boolean> {
try {
await this.run(data)
return await this.run(data)
} catch (error) {
this.bot.logger.error(
'main',
'PUNCHCARD',
`移动端打卡任务失败 | ${error instanceof Error ? error.message : String(error)}`
)
return true
}
}

Expand Down Expand Up @@ -42,9 +43,9 @@ export class PunchCards extends BaseActivity {
}
}

private async run(data: DashboardData): Promise<void> {
private async run(data: DashboardData): Promise<boolean> {
const parents = await this.getParentQuests()
if (!parents) return
if (!parents) return false

const apiById = new Map(
(data.dashboard.punchCards ?? [])
Expand All @@ -60,7 +61,7 @@ export class PunchCards extends BaseActivity {

if (!pending.length) {
this.bot.logger.info(this.bot.isMobile, 'PUNCHCARD', '没有可执行的任务')
return
return false
}

this.bot.logger.info(
Expand All @@ -84,6 +85,7 @@ export class PunchCards extends BaseActivity {
}

this.bot.logger.info(this.bot.isMobile, 'PUNCHCARD', '任务处理完毕')
return true
}

private async getParentQuests(): Promise<ParentQuest[] | null> {
Expand Down
Loading