add the logic to mark unsuitable job on local

This commit is contained in:
geekgeekrun
2025-07-06 02:00:53 +08:00
parent d1441b5761
commit f668b3e5f5
2 changed files with 54 additions and 45 deletions
@@ -903,7 +903,21 @@ async function toRecommendPage (hooks) {
const notSuitConditionHandleMap = { const notSuitConditionHandleMap = {
async active() { async active() {
blockBossNotActive.add(targetJobData.jobInfo.encryptUserId) blockBossNotActive.add(targetJobData.jobInfo.encryptUserId)
if (jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) { if (jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL || !await page.$('.job-detail-box .job-detail-operate .not-suitable')) {
try {
await hooks.jobMarkedAsNotSuit.promise(
targetJobData,
{
markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.BOSS_INACTIVE,
extInfo: null,
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
}
)
} catch {
}
}
else if (jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
try { try {
const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.BOSS_INACTIVE) const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.BOSS_INACTIVE)
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
@@ -921,13 +935,16 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
else if (jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { },
async city() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL || !await page.$('.job-detail-box .job-detail-operate .not-suitable')) {
try { try {
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
targetJobData, targetJobData,
{ {
markFrom: ChatStartupFrom.AutoFromRecommendList, markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.BOSS_INACTIVE, markReason: MarkAsNotSuitReason.JOB_CITY_NOT_SUIT,
extInfo: null, extInfo: null,
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
} }
@@ -935,10 +952,7 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
}, else if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
async city() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
try { try {
const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_CITY_NOT_SUIT) const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_CITY_NOT_SUIT)
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
@@ -955,13 +969,16 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
else if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { },
async workExp() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectWorkExpNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL || !await page.$('.job-detail-box .job-detail-operate .not-suitable')) {
try { try {
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
targetJobData, targetJobData,
{ {
markFrom: ChatStartupFrom.AutoFromRecommendList, markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.JOB_CITY_NOT_SUIT, markReason: MarkAsNotSuitReason.JOB_WORK_EXP_NOT_SUIT,
extInfo: null, extInfo: null,
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
} }
@@ -969,10 +986,7 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
}, else if (expectWorkExpNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
async workExp() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectWorkExpNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
try { try {
const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_WORK_EXP_NOT_SUIT) const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_WORK_EXP_NOT_SUIT)
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
@@ -989,13 +1003,16 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
else if (expectWorkExpNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { },
async jobDetail() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL || !await page.$('.job-detail-box .job-detail-operate .not-suitable')) {
try { try {
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
targetJobData, targetJobData,
{ {
markFrom: ChatStartupFrom.AutoFromRecommendList, markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.JOB_WORK_EXP_NOT_SUIT, markReason: MarkAsNotSuitReason.JOB_NOT_SUIT,
extInfo: null, extInfo: null,
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
} }
@@ -1003,10 +1020,7 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
}, else if (jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
async jobDetail() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
try { try {
const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_NOT_SUIT) const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_NOT_SUIT)
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
@@ -1024,24 +1038,26 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
else if (jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { },
async salary() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectSalaryNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL || !await page.$('.job-detail-box .job-detail-operate .not-suitable')) {
try { try {
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
targetJobData, targetJobData,
{ {
markFrom: ChatStartupFrom.AutoFromRecommendList, markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.JOB_NOT_SUIT, markReason: MarkAsNotSuitReason.JOB_SALARY_NOT_SUIT,
extInfo: null, extInfo: {
salaryDesc: selectedJobData.salaryDesc,
},
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
} }
) )
} catch { } catch {
} }
} }
}, else if (expectSalaryNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
async salary() {
blockJobNotSuit.add(targetJobData.jobInfo.encryptId)
if (expectSalaryNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS) {
try { try {
const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_SALARY_NOT_SUIT) const { chosenReasonInUi } = await markJobAsNotSuitInRecommendPage(MarkAsNotSuitReason.JOB_SALARY_NOT_SUIT)
await hooks.jobMarkedAsNotSuit.promise( await hooks.jobMarkedAsNotSuit.promise(
@@ -1059,22 +1075,6 @@ async function toRecommendPage (hooks) {
} catch { } catch {
} }
} }
else if (expectSalaryNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) {
try {
await hooks.jobMarkedAsNotSuit.promise(
targetJobData,
{
markFrom: ChatStartupFrom.AutoFromRecommendList,
markReason: MarkAsNotSuitReason.JOB_SALARY_NOT_SUIT,
extInfo: {
salaryDesc: selectedJobData.salaryDesc,
},
markOp: MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL
}
)
} catch {
}
}
} }
} }
+12 -3
View File
@@ -119,7 +119,10 @@ export default class SqlitePlugin {
) { ) {
const ds = await this.initPromise; const ds = await this.initPromise;
const last7DayMarkRecords = (await getNotSuitMarkRecordsInLastSomeDays(ds, 7) ?? []); const last7DayMarkRecords = (await getNotSuitMarkRecordsInLastSomeDays(ds, 7) ?? []);
if (jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { if (
jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
jobNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
) {
last7DayMarkRecords last7DayMarkRecords
.filter(it => .filter(it =>
[ [
@@ -134,7 +137,10 @@ export default class SqlitePlugin {
id => blockJobNotSuit.add(id) id => blockJobNotSuit.add(id)
) )
} }
if (jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { if (
jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
jobNotActiveStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
) {
last7DayMarkRecords last7DayMarkRecords
.filter(it => it.markReason === MarkAsNotSuitReason.BOSS_INACTIVE) .filter(it => it.markReason === MarkAsNotSuitReason.BOSS_INACTIVE)
.map( .map(
@@ -144,7 +150,10 @@ export default class SqlitePlugin {
id => blockJobNotSuit.add(id) id => blockJobNotSuit.add(id)
) )
} }
if (expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL) { if (
expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_LOCAL ||
expectCityNotMatchStrategy === MarkAsNotSuitOp.MARK_AS_NOT_SUIT_ON_BOSS
) {
last7DayMarkRecords last7DayMarkRecords
.filter(it => it.markReason === MarkAsNotSuitReason.JOB_CITY_NOT_SUIT) .filter(it => it.markReason === MarkAsNotSuitReason.JOB_CITY_NOT_SUIT)
.map( .map(