@epsilon-asi/actors 0.0.43 → 0.0.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/sites/upwork-com/upwork-com.actor.d.ts +5 -3
- package/dist/sites/upwork-com/upwork-com.actor.d.ts.map +1 -1
- package/dist/sites/upwork-com/upwork-com.actor.js +10 -11
- package/dist/sites/upwork-com/upwork-com.actor.js.map +1 -1
- package/package.json +1 -1
- package/src/sites/upwork-com/upwork-com.actor.ts +15 -13
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { UpworkApplyToJobInput, UpworkApplyToJobResult, UpworkJobSearchFields, UpworkJobSelector } from './upwork-com.types.js';
|
|
2
|
-
import { ScrapeDashboardInput } from "../example/index.js";
|
|
3
2
|
import { UpworkJobListing } from "./util/scrapeJobListing.js";
|
|
4
3
|
import { UpworkProposalAnswers, UpworkProposalQuestions } from "./util/parseJobApplicationDetails.js";
|
|
4
|
+
import { UpworkJobDetails } from "./util/parseJobDetails.js";
|
|
5
5
|
export declare const upworkComActor: import("../../index.js").Actor<{
|
|
6
6
|
test: (context: import("../../index.js").ActorContext, input: any) => Promise<void>;
|
|
7
7
|
searchJobs: (context: import("../../index.js").ActorContext, input?: UpworkJobSearchFields) => Promise<UpworkJobListing[]>;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
getJob: (_context: import("../../index.js").ActorContext, input: UpworkJobSelector) => Promise<{
|
|
9
|
+
jobDetails: UpworkJobDetails;
|
|
10
|
+
jobQuestions: UpworkProposalQuestions;
|
|
11
|
+
}>;
|
|
10
12
|
applyToJob: (_context: import("../../index.js").ActorContext, input: UpworkApplyToJobInput & UpworkProposalAnswers) => Promise<UpworkApplyToJobResult>;
|
|
11
13
|
}>;
|
|
12
14
|
//# sourceMappingURL=upwork-com.actor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upwork-com.actor.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"upwork-com.actor.d.ts","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"AAGA,OAAO,EACH,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,iBAAiB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAA2B,gBAAgB,EAAC,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EAE2B,qBAAqB,EACnD,uBAAuB,EAC1B,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAA4B,gBAAgB,EAAC,MAAM,2BAA2B,CAAC;AAEtF,eAAO,MAAM,cAAc;;yEAuDgB,qBAAqB,KAAQ,OAAO,CAAC,gBAAgB,EAAE,CAAC;qEAO3D,iBAAiB,KAAG,OAAO,CAAC;QACxD,UAAU,EAAE,gBAAgB,CAAC;QAC7B,YAAY,EAAE,uBAAuB,CAAA;KACxC,CAAC;yEAakC,qBAAqB,GAAG,qBAAqB,KAAG,OAAO,CAAC,sBAAsB,CAAC;EA+BzH,CAAC"}
|
|
@@ -4,6 +4,7 @@ import { upworkComSelectors } from './upwork-com.selectors.js';
|
|
|
4
4
|
import { parseRate } from "./upwork-com.util.js";
|
|
5
5
|
import { parseUpworkSearchResults } from "./util/scrapeJobListing.js";
|
|
6
6
|
import { fillUpworkProposalQuestions, parseUpworkProposalQuestions } from "./util/parseJobApplicationDetails.js";
|
|
7
|
+
import { parseUpworkJobDetailsPage } from "./util/parseJobDetails.js";
|
|
7
8
|
export const upworkComActor = defineActor({
|
|
8
9
|
id: 'upwork-com',
|
|
9
10
|
baseUrl: 'https://upwork.com',
|
|
@@ -64,20 +65,18 @@ export const upworkComActor = defineActor({
|
|
|
64
65
|
await context.nav.goto(path, {});
|
|
65
66
|
return await parseUpworkSearchResults(context.session.page);
|
|
66
67
|
},
|
|
67
|
-
|
|
68
|
-
await
|
|
69
|
-
|
|
70
|
-
getJobQuestions: async (_context, input) => {
|
|
68
|
+
getJob: async (_context, input) => {
|
|
69
|
+
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/`);
|
|
70
|
+
const jobDetails = parseUpworkJobDetailsPage(await _context.session.page.content());
|
|
71
71
|
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
|
|
72
|
-
|
|
72
|
+
const jobQuestions = await parseUpworkProposalQuestions(_context.session.page);
|
|
73
|
+
return {
|
|
74
|
+
jobDetails,
|
|
75
|
+
jobQuestions
|
|
76
|
+
};
|
|
73
77
|
},
|
|
74
78
|
applyToJob: async (_context, input) => {
|
|
75
|
-
await _context.
|
|
76
|
-
await _context.cursor.move(`[data-ev-job-uid="${input.jobId}"]`);
|
|
77
|
-
await _context.cursor.click(`[data-ev-job-uid="${input.jobId}"]`);
|
|
78
|
-
await _context.cursor.move(`[data-test="Apply"]>button`);
|
|
79
|
-
/*await _context.cursor.click(`[data-test="Apply"]>button`);*/
|
|
80
|
-
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
|
|
79
|
+
await _context.nav.goto(`/nx/proposals/job/~02${input.jobId}/apply/`);
|
|
81
80
|
await _context.cursor.move('.up-fe-agency-member-selector > [data-test="dropdown-toggle"]');
|
|
82
81
|
await _context.cursor.click('.up-fe-agency-member-selector > [data-test="dropdown-toggle"]');
|
|
83
82
|
await _context.cursor.move('li[role="option"][tabindex="0"]');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upwork-com.actor.js","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAC,WAAW,EAAC,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAO7D,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAE/C,OAAO,EAAC,wBAAwB,EAAmB,MAAM,4BAA4B,CAAC;AAEtF,OAAO,EACH,2BAA2B,EAC3B,4BAA4B,EAE/B,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"upwork-com.actor.js","sourceRoot":"","sources":["../../../src/sites/upwork-com/upwork-com.actor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -16,6 +16,7 @@ import {
|
|
|
16
16
|
parseUpworkProposalQuestions, UpworkProposalAnswers, UpworkProposalQuestionKind,
|
|
17
17
|
UpworkProposalQuestions
|
|
18
18
|
} from "./util/parseJobApplicationDetails.js";
|
|
19
|
+
import {parseUpworkJobDetailsPage, UpworkJobDetails} from "./util/parseJobDetails.js";
|
|
19
20
|
|
|
20
21
|
export const upworkComActor = defineActor({
|
|
21
22
|
id: 'upwork-com',
|
|
@@ -79,24 +80,25 @@ export const upworkComActor = defineActor({
|
|
|
79
80
|
|
|
80
81
|
return await parseUpworkSearchResults(context.session.page as Page);
|
|
81
82
|
},
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
83
|
+
getJob: async (_context, input: UpworkJobSelector): Promise<{
|
|
84
|
+
jobDetails: UpworkJobDetails,
|
|
85
|
+
jobQuestions: UpworkProposalQuestions
|
|
86
|
+
}> => {
|
|
87
|
+
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/`);
|
|
88
|
+
|
|
89
|
+
const jobDetails = parseUpworkJobDetailsPage(await _context.session.page.content());
|
|
90
|
+
|
|
86
91
|
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
|
|
87
92
|
|
|
88
|
-
|
|
93
|
+
const jobQuestions = await parseUpworkProposalQuestions(_context.session.page as Page);
|
|
94
|
+
return {
|
|
95
|
+
jobDetails,
|
|
96
|
+
jobQuestions
|
|
97
|
+
}
|
|
89
98
|
},
|
|
90
99
|
applyToJob: async (_context, input: UpworkApplyToJobInput & UpworkProposalAnswers): Promise<UpworkApplyToJobResult> => {
|
|
91
|
-
await _context.cursor.scrollIntoView(`[data-ev-job-uid="${input.jobId}"]`);
|
|
92
|
-
|
|
93
|
-
await _context.cursor.move(`[data-ev-job-uid="${input.jobId}"]`);
|
|
94
|
-
await _context.cursor.click(`[data-ev-job-uid="${input.jobId}"]`);
|
|
95
100
|
|
|
96
|
-
await _context.
|
|
97
|
-
/*await _context.cursor.click(`[data-test="Apply"]>button`);*/
|
|
98
|
-
|
|
99
|
-
await _context.nav.goto(`/nx/proposals/job/~${input.jobId}/apply/`);
|
|
101
|
+
await _context.nav.goto(`/nx/proposals/job/~02${input.jobId}/apply/`);
|
|
100
102
|
|
|
101
103
|
await _context.cursor.move('.up-fe-agency-member-selector > [data-test="dropdown-toggle"]')
|
|
102
104
|
await _context.cursor.click('.up-fe-agency-member-selector > [data-test="dropdown-toggle"]')
|