-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask.go
More file actions
58 lines (49 loc) · 1.61 KB
/
task.go
File metadata and controls
58 lines (49 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package protocol
import (
"context"
"log"
basicgroupsprotocol "github.com/futura-platform/protocol/basicgroups/protocol"
"github.com/futura-platform/protocol/browserprotocol"
"github.com/futura-platform/protocol/captchaprotocol"
"github.com/futura-platform/protocol/flowprotocol"
"github.com/futura-platform/protocol/httpsserveprotocol"
"github.com/futura-platform/protocol/logprotocol"
"github.com/futura-platform/protocol/netprotocol"
"github.com/futura-platform/protocol/netprotocol/proxyprotocol"
"github.com/futura-platform/protocol/pubsubprotocol"
"github.com/futura-platform/protocol/sessionsprotocol"
"github.com/futura-platform/protocol/settingsprotocol"
"github.com/futura-platform/protocol/smsprotocol"
"github.com/futura-platform/protocol/userinputprotocol"
)
type BaseTask interface {
// step flow
flowprotocol.Context
// logging
logprotocol.Logger
// basic logging
BLog() *log.Logger
// by default a task is a client, but it can also act as a client provider to make more client instances
netprotocol.ClientProvider
netprotocol.BaseHttpClient
captchaprotocol.Provider
browserprotocol.Spawner
pubsubprotocol.Provider
sessionsprotocol.Provider
settingsprotocol.Provider
smsprotocol.Provider
userinputprotocol.Provider
flowprotocol.LifecycleHooks
httpsserveprotocol.Provider
// basicgroupsprotocol.GenericProvider
ProxyProvider() basicgroupsprotocol.Provider[*proxyprotocol.Proxy]
RotateProxy() error
// other
WithContext(ctx context.Context) BaseTask
}
// this is the type that users of the protocol package should use
type Task[T any] struct {
BaseTask
netprotocol.HttpClient
Params *T
}