component-shipinlv 1.1.26 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/VideoPublish/account-manage/home.js +24 -4
- package/dist/VideoPublish/account-manage/list.d.ts +1 -0
- package/dist/VideoPublish/account-manage/list.js +68 -24
- package/dist/VideoPublish/account-manage/setting/index.js +43 -4
- package/dist/VideoPublish/log/index.js +90 -44
- package/dist/VideoPublish/log/index.less +1 -1
- package/dist/VideoPublish/publish-task-plan/index.js +14 -2
- package/dist/VideoPublish/publish-task-plan/tool-bak.txt +219 -0
- package/dist/VideoPublish/publish-task-plan/tool.d.ts +14 -4
- package/dist/VideoPublish/publish-task-plan/tool.js +301 -83
- package/dist/VideoPublish/video-account/index.js +5 -2
- package/dist/active-code/index.d.ts +1 -0
- package/dist/active-code/index.js +5 -2
- package/dist/base/folderCreate.d.ts +2 -0
- package/dist/base/folderCreate.js +56 -0
- package/dist/component/folder-select.d.ts +1 -0
- package/dist/component/folder-select.js +46 -12
- package/dist/component/param.d.ts +5 -0
- package/dist/component/param.js +9 -0
- package/dist/component/sse.d.ts +11 -0
- package/dist/component/sse.js +66 -0
- package/dist/lib/Tool.d.ts +1 -1
- package/dist/lib/Tool.js +2 -2
- package/dist/lib/accountManageSettingConfig.js +3 -1
- package/dist/lib/event.js +2 -2
- package/dist/lib/getApiUrl.d.ts +1 -0
- package/dist/lib/getApiUrl.js +9 -1
- package/dist/lib/openChrome.d.ts +2 -0
- package/dist/lib/openChrome.js +115 -0
- package/dist/lib/request.js +1 -1
- package/dist/lib/user-agent.d.ts +2 -0
- package/dist/lib/user-agent.js +10 -0
- package/dist/lib/video-api/open-chrome.d.ts +2 -0
- package/dist/lib/video-api/open-chrome.js +49 -0
- package/dist/renewal-vip/index.d.ts +1 -1
- package/dist/renewal-vip/index.js +6 -4
- package/dist/service/local/FileController.d.ts +3 -0
- package/dist/service/local/FileController.js +59 -32
- package/dist/service/video-api/VideoApiOpenChromeController.d.ts +1 -0
- package/dist/service/video-api/VideoApiOpenChromeController.js +27 -0
- package/dist/types/ApiLocal.d.ts +19 -0
- package/dist/types/ApiLocal.js +0 -0
- package/dist/types/OpenChrome.d.ts +16 -0
- package/dist/types/OpenChrome.js +0 -0
- package/dist/types/PublishTaskPlan.d.ts +7 -1
- package/dist/types/PublishVideo.d.ts +11 -0
- package/dist/types/PublishVideo.js +0 -0
- package/dist/types/VideoPublishLog.d.ts +4 -1
- package/dist/typings/LocalFile.d.ts +3 -0
- package/dist/typings/VideoPublishAccountManageSetting.d.ts +1 -0
- package/dist/typings/VideoPublishVideoAccount.d.ts +3 -0
- package/dist/window.d.ts +1 -0
- package/package.json +1 -1
@@ -0,0 +1,219 @@
|
|
1
|
+
import * as VideoPublishCrawlerTaskController from '../../service/api/VideoPublishCrawlerTaskController';
|
2
|
+
import sleep from "../../lib/sleep";
|
3
|
+
import event from "../../lib/event";
|
4
|
+
import AccountManageSettingConfig from "../../lib/accountManageSettingConfig";
|
5
|
+
|
6
|
+
class PublishTaskPlanClass {
|
7
|
+
timeLoopMillisecond = 15 * 1e3;
|
8
|
+
isPublishing = false;
|
9
|
+
env = '' as Global.Env | undefined ;
|
10
|
+
clientIdentity = '';
|
11
|
+
constructor( env?: Global.Env, clientIdentity = '' ) {
|
12
|
+
this.env = env;
|
13
|
+
this.clientIdentity = clientIdentity;
|
14
|
+
}
|
15
|
+
onInit(){
|
16
|
+
setInterval(() => {
|
17
|
+
if( this.isPublishing ){
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
this.getWork();
|
21
|
+
}, 2e3 );
|
22
|
+
|
23
|
+
// 桥
|
24
|
+
window.getBridge?.()?.onLog?.( ( query: any ) => {
|
25
|
+
event.run('shipinlv-video-publish-log', query )
|
26
|
+
});
|
27
|
+
}
|
28
|
+
|
29
|
+
async getWork(){
|
30
|
+
const settingConfig = AccountManageSettingConfig();
|
31
|
+
if( settingConfig.disabledApplyTask ){
|
32
|
+
return;
|
33
|
+
}
|
34
|
+
|
35
|
+
this.isPublishing = true;
|
36
|
+
const taskDetail = await this.onTaskGet()
|
37
|
+
.catch( err => {
|
38
|
+
|
39
|
+
});
|
40
|
+
|
41
|
+
if( ! taskDetail ){
|
42
|
+
await sleep( this.timeLoopMillisecond );
|
43
|
+
this.isPublishing = false;
|
44
|
+
return;
|
45
|
+
}
|
46
|
+
|
47
|
+
this.doWork( taskDetail );
|
48
|
+
}
|
49
|
+
|
50
|
+
async doWork( taskDetail: PublishTaskPlan.TaskDetail ){
|
51
|
+
if( taskDetail.emptyLoopTimeSecond > 10 ){
|
52
|
+
this.timeLoopMillisecond = taskDetail.emptyLoopTimeSecond * 1e3;
|
53
|
+
}
|
54
|
+
|
55
|
+
console.log("taskDetail;", taskDetail );
|
56
|
+
const item = taskDetail.taskInfo;
|
57
|
+
if( item.taskType === '' ){
|
58
|
+
console.log('无任务');
|
59
|
+
await this.doWorkWait();
|
60
|
+
return;
|
61
|
+
}
|
62
|
+
|
63
|
+
|
64
|
+
const saveBaseData = {
|
65
|
+
taskType: item.taskType,
|
66
|
+
taskId: item.taskId,
|
67
|
+
platform: taskDetail.platform,
|
68
|
+
platformAccountId: taskDetail.platformVideoAccountId,
|
69
|
+
};
|
70
|
+
switch ( item.taskType ) {
|
71
|
+
case "publish-video":
|
72
|
+
if( ! item.publishVideo ){
|
73
|
+
console.warn("item.publishVideo is empty!")
|
74
|
+
this.onReport(false, "publishVideo 不存在", saveBaseData );
|
75
|
+
break;
|
76
|
+
}
|
77
|
+
const result = await this.onPublishVideo(
|
78
|
+
taskDetail.platform,
|
79
|
+
taskDetail.platformVideoAccountId,
|
80
|
+
taskDetail.taskInfo,
|
81
|
+
taskDetail.proxyInfo,
|
82
|
+
)
|
83
|
+
.catch( err => {
|
84
|
+
console.warn("onPublishVideo err:", err );
|
85
|
+
this.onReport(false, err?.message, saveBaseData );
|
86
|
+
});
|
87
|
+
if( result ){
|
88
|
+
this.onReport(result.success, result.message, saveBaseData );
|
89
|
+
}
|
90
|
+
break;
|
91
|
+
default:
|
92
|
+
const errMessage = '暂不支持 类型:'+ item.taskType ;
|
93
|
+
console.log( errMessage );
|
94
|
+
const errLog: VideoPublishLog.Receive = {
|
95
|
+
platform: taskDetail.platform,
|
96
|
+
platformAccountId: taskDetail.platformVideoAccountId,
|
97
|
+
code: 'not-support-task-type',
|
98
|
+
message: errMessage,
|
99
|
+
status: 'fail',
|
100
|
+
taskId: item.taskId,
|
101
|
+
eventType: 'task-kind'
|
102
|
+
}
|
103
|
+
this.onLog( errLog );
|
104
|
+
|
105
|
+
this.onReport(false, errMessage, saveBaseData );
|
106
|
+
}
|
107
|
+
|
108
|
+
await this.doWorkWait();
|
109
|
+
}
|
110
|
+
|
111
|
+
async onLog( query: VideoPublishLog.Receive ){
|
112
|
+
event.run('shipinlv-video-publish-log', query);
|
113
|
+
}
|
114
|
+
|
115
|
+
async doWorkWait(){
|
116
|
+
await sleep( this.timeLoopMillisecond );
|
117
|
+
this.isPublishing = false;
|
118
|
+
}
|
119
|
+
|
120
|
+
onReport(success: boolean, message: string, saveBaseData: PublishTaskPlan.ReportTaskQueryBaseInfo ){
|
121
|
+
VideoPublishCrawlerTaskController.report({
|
122
|
+
success,
|
123
|
+
message,
|
124
|
+
...saveBaseData,
|
125
|
+
},{
|
126
|
+
env: this.env,
|
127
|
+
});
|
128
|
+
}
|
129
|
+
|
130
|
+
async onTaskGet(){
|
131
|
+
event.run('task-apply');
|
132
|
+
const env = this.env;
|
133
|
+
|
134
|
+
return await VideoPublishCrawlerTaskController.apply({
|
135
|
+
|
136
|
+
}, {
|
137
|
+
env,
|
138
|
+
});
|
139
|
+
}
|
140
|
+
|
141
|
+
async onPublishVideo(
|
142
|
+
platform: Global.VideoPlatformKind,
|
143
|
+
platformVideoAccountId: string,
|
144
|
+
taskInfo: PublishTaskPlan.TaskInfo,
|
145
|
+
proxyInfo: Global.ProxyInfo,
|
146
|
+
){
|
147
|
+
// 发布抖音视频
|
148
|
+
await sleep( 1 );
|
149
|
+
return new Promise<PublishNpm.VideoPublishResult>(async ( resolve, reject ) => {
|
150
|
+
const settingConfig = AccountManageSettingConfig();
|
151
|
+
console.log('settingConfig 1:', settingConfig );
|
152
|
+
const publishResult = await window.getBridge?.().videoPublish(
|
153
|
+
proxyInfo,
|
154
|
+
{
|
155
|
+
platformVideoAccountId,
|
156
|
+
platform,
|
157
|
+
open: settingConfig.isChromeOpen, // 发布视频的时候是否打开图形界面
|
158
|
+
taskInfo,
|
159
|
+
// taskInfo: {
|
160
|
+
// taskId: detail.taskId,
|
161
|
+
// taskType:
|
162
|
+
// publishVideo: {
|
163
|
+
// taskId: detail.taskId,
|
164
|
+
// title: detail.title, // "视频标题",
|
165
|
+
// introduction: detail.introduction, //"视频简介",
|
166
|
+
// videoKindTag: detail.videoKindTag, //"", // shopping | ""
|
167
|
+
// videoUrl: detail.videoUrl, //"视频地址",
|
168
|
+
// publishTime: detail.publishTime, //"2024-08-14 10:00", // 可以是int也可以是string
|
169
|
+
// kindTagValue: detail.kindTagValue, // "" // 抖音是商品链接 快手是商品relItemId
|
170
|
+
// }
|
171
|
+
// },
|
172
|
+
})
|
173
|
+
.catch( err => {
|
174
|
+
// 基本不会到这里
|
175
|
+
console.warn('bridge. video Publish err:', err.code, err );
|
176
|
+
resolve( err );
|
177
|
+
});
|
178
|
+
|
179
|
+
if( ! publishResult ){
|
180
|
+
return publishResult;
|
181
|
+
}
|
182
|
+
|
183
|
+
console.log("publishResult:", publishResult);
|
184
|
+
|
185
|
+
if( ! publishResult.success ){
|
186
|
+
const errLog: VideoPublishLog.Receive = {
|
187
|
+
platform: publishResult.data.platform,
|
188
|
+
platformAccountId: publishResult.data.platformVideoAccountId,
|
189
|
+
code: publishResult.code,
|
190
|
+
message: publishResult.message,
|
191
|
+
status: 'fail',
|
192
|
+
taskId: taskInfo.taskId,
|
193
|
+
eventType: 'publish-video'
|
194
|
+
}
|
195
|
+
// event.run('lo g', errLog);
|
196
|
+
this.onLog( errLog );
|
197
|
+
|
198
|
+
const err = new Error( publishResult.message );
|
199
|
+
err.name = publishResult.code;
|
200
|
+
return reject( err );
|
201
|
+
}
|
202
|
+
|
203
|
+
resolve( publishResult );
|
204
|
+
|
205
|
+
// const logReceive: Log.Receive = {
|
206
|
+
// platform: publishResult.data.platform,
|
207
|
+
// platformAccountId: publishResult.data.platformVideoAccountId,
|
208
|
+
// code: 'publish-video-finish',
|
209
|
+
// message: '',
|
210
|
+
// status: 'success',
|
211
|
+
// taskId: 0,
|
212
|
+
// eventType: 'task-kind'
|
213
|
+
// }
|
214
|
+
// event.run('lo g', logReceive);
|
215
|
+
});
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
export default PublishTaskPlanClass;
|
@@ -1,16 +1,26 @@
|
|
1
1
|
declare class PublishTaskPlanClass {
|
2
2
|
timeLoopMillisecond: number;
|
3
3
|
isPublishing: boolean;
|
4
|
-
env: Global.Env |
|
4
|
+
env: Global.Env | '';
|
5
5
|
clientIdentity: string;
|
6
|
-
|
6
|
+
options: PublishTaskPlan.Options;
|
7
|
+
constructor(env: Global.Env | '', clientIdentity: string | undefined, options: PublishTaskPlan.Options);
|
7
8
|
onInit(): void;
|
8
9
|
getWork(): Promise<void>;
|
9
10
|
doWork(taskDetail: PublishTaskPlan.TaskDetail): Promise<void>;
|
10
11
|
onLog(query: VideoPublishLog.Receive): Promise<void>;
|
11
12
|
doWorkWait(): Promise<void>;
|
12
|
-
onReport(success: boolean,
|
13
|
+
onReport(success: boolean, code: string, // not-login
|
14
|
+
message: string, saveBaseData: PublishTaskPlan.ReportTaskQueryBaseInfo): Promise<boolean>;
|
13
15
|
onTaskGet(): Promise<PublishTaskPlan.TaskDetail>;
|
14
|
-
onPublishVideo(platform: Global.VideoPlatformKind, platformVideoAccountId: string, taskInfo: PublishTaskPlan.TaskInfo, proxyInfo: Global.ProxyInfo): Promise<
|
16
|
+
onPublishVideo(platform: Global.VideoPlatformKind, platformVideoAccountId: string, nickname: string, chromeProfileName: string, taskInfo: PublishTaskPlan.TaskInfo, proxyInfo: Global.ProxyInfo): Promise<boolean>;
|
17
|
+
onPublishVideoDo(proxyInfo: Global.ProxyInfo, query: {
|
18
|
+
platformVideoAccountId: string;
|
19
|
+
platform: Global.VideoPlatformKind;
|
20
|
+
nickname: string;
|
21
|
+
open: boolean;
|
22
|
+
chromeProfileName: string;
|
23
|
+
taskInfo: PublishTaskPlan.TaskInfo;
|
24
|
+
}, settingConfig: VideoPublishAccountManageSetting.Config): Promise<boolean>;
|
15
25
|
}
|
16
26
|
export default PublishTaskPlanClass;
|