capGo

package module
v0.0.0-...-8d9f555 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 22, 2023 License: GPL-3.0 Imports: 5 Imported by: 0

README

(WIP) CapGo

Golang package for easy and fast integration with CapSolver API

Supported CAPTCHA types:

  • HCaptcha
  • FunCaptcha
  • Geetest
  • ReCaptchaV2
  • ReCaptchav3
  • MtCaptcha
  • Datadom
  • Cloudflare
  • Kasada
  • Akamai BMP

Installation

go get github.com/paradist/capgo

Usage

Balance
  client := capGo.Client("APIKEY")
  bal, err := client.Balance()
  if (err != nil) {
    log.Println(err)
  }
  log.Println(bal)
Solve captcha
  client := capGo.Client("APIKEY")
  resp, err := client.Solve(map[string]any{
 		"type":       "ReCaptchaV2taskProxyLess",
		"websiteURL": "https://www.google.com/recaptcha/api2/demo",
		"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
  })
  if (err != nil) {
    log.Println(err)
  }
  log.Println(resp.Solution.GRecaptchaResponse)
 client := capGo.Client("APIKEY")
 resp, err := client.Solve(map[string]any{
	"type":       "HCaptchaEnterpriseTaskProxyLess",
	"websiteURL": "https://hcaptcha.com/",
	"websiteKey": "00000000-0000-0000-0000-000000000000",
 })
 if (err != nil) {
   log.Println(err)
 }
 log.Println(resp)
Recognition
 client := capGo.Client("APIKEY")
 b, err := os.ReadFile("queue-it.jpg")
 if (err != nil) {
    panic(err)
 }
 resp, err := client.Solve(map[string]any{
		"type": "ImageToTextTask",
		"module": "queueit",
		"body":   base64.StdEncoding.EncodeToString(b),
  })
 if (err != nil) {
    log.Println(err)
  }
 log.Println(resp.Solution.Text)

Documentation

Index

Constants

View Source
const (
	STATUS_READY     = "ready"
	CREATE_TASK_PATH = "/createTask"
	GET_TASK_PATH    = "/getTaskResult"
	BALANCE_PATH     = "/getBalance"
	TASK_TIMEOUT     = 45
	API_URL          = "https://api.capsolver.com"
	APP_ID           = "44937E6C-1F08-4D20-9413-E61F74E8B254"
)

Variables

View Source
var (
	CAPTCHA_TYPES = []string{

		"HCaptchaTask",
		"HCaptchaTaskProxyLess",
		"HCaptchaEnterpriseTask",
		"HCaptchaEnterpriseTaskProxyLess",
		"HCaptchaTurboTask",
		"HCaptchaClassification",

		"FunCaptchaTask",
		"FunCaptchaTaskProxyLess",
		"FunCaptchaClassification",

		"GeeTestTask",
		"GeeTestTaskProxyLess",

		"ReCaptchaV2Task",
		"ReCaptchaV2TaskProxyLess",
		"ReCaptchaV2EnterpriseTaskProxyLess",
		"ReCaptchaV2EnterpriseTask",
		"ReCaptchaV3Task",
		"ReCaptchaV3TaskProxyLess",
		"ReCaptchaV3EnterpriseTask",
		"ReCaptchaV3EnterpriseTaskProxyLess",

		"MtCaptchaTask",
		"MtCaptchaTaskProxyLess",

		"DataDomeSliderTask",

		"AntiCloudflareTask",

		"AntiKasadaTask",

		"AntiAkamaiBMPTask",

		"ImageToTextTask",

		"AwsWafClassification",
	}
)

Functions

func Client

func Client(ApiKey string) *capGoStruct

Types

type CapSolverRequest

type CapSolverRequest struct {
	ClientKey string          `json:"ClientKey"`
	Task      *map[string]any `json:"task,omitempty"`
	TaskId    string          `json:"taskId,omitempty"`
	AppId     string          `json:"appId,omitempty"`
}

type CapSolverResponse

type CapSolverResponse struct {
	ErrorId          int32     `json:"errorId"`
	ErrorCode        string    `json:"errorCode"`
	ErrorDescription string    `json:"errorDescription,omitempty"`
	Status           string    `json:"status,omitempty"`
	Solution         *Solution `json:"solution,omitempty"`
	TaskId           string    `json:"taskId,omitempty"`
	Balance          float32   `json:"balance,omitempty"`
	Packages         []string  `json:"packages,omitempty"`
}

type CapSolverTask

type CapSolverTask struct {
	Type                      string             `json:"type"`
	WebsiteURL                string             `json:"websiteURL,omitempty"`
	WebsiteKey                string             `json:"websiteKey,omitempty"`
	Proxy                     string             `json:"proxy,omitempty"`
	EnterPrisePayload         *enterPrisePayload `json:"enterprisePayload,omitempty"`
	IsInvisible               bool               `json:"isInvisible,omitempty"`
	ApiDomain                 string             `json:"apiDomain,omitempty"`
	UserAgent                 string             `json:"userAgent,omitempty"`
	Cookies                   *cookies           `json:"cookies,omitempty"`
	Module                    string             `json:"module,omitempty"`
	Body                      string             `json:"body,omitempty"`
	Question                  string             `json:"question,omitempty"`
	Queries                   []string           `json:"Queries,omitempty"`
	PageAction                string             `json:"pageAction,omitempty"`
	MinScore                  float32            `json:"MinScore,omitempty"`
	Gt                        string             `json:"gt,omitempty"`
	Challenge                 string             `json:"challenge,omitempty"`
	GeetestApiServerSubdomain string             `json:"geetestApiServerSubdomain,omitempty"`
	CaptchaId                 string             `json:"captchaId,omitempty"`
	CaptchaUrl                string             `json:"captchaUrl,omitempty"`
	Metadata                  map[string]string  `json:"metadata"`
	Html                      string             `json:"html"`
}

type Solution

type Solution struct {
	Object             []bool    `json:"objects,omitempty"`
	Box                []float32 `json:"box,omitempty"`
	ImageSizes         []int32   `json:"imageSize,omitempty"`
	Text               string    `json:"text,omitempty"`
	UserAgent          string    `json:"userAgent,omitempty"`
	ExpireTime         int64     `json:"expireTime,omitempty"`
	GRecaptchaResponse string    `json:"gRecaptchaResponse,omitempty"`
	Challenge          string    `json:"challenge,omitempty"`
	Validate           string    `json:"validate,omitempty"`
	CaptchaId          string    `json:"captcha-id,omitempty"`
	CaptchaOutput      string    `json:"captcha-output,omitempty"`
	GenTime            string    `json:"gen_time,omitempty"`
	LogNumber          string    `json:"log_number,omitempty"`
	PassToken          string    `json:"pass_token,omitempty"`
	RiskType           string    `json:"risk_Type,omitempty"`
	Token              string    `json:"token,omitempty"`
	Type               string    `json:"type,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL