SYMBOL INDEX (3148 symbols across 320 files) FILE: app/aid/history/failure.go type Failure (line 18) | type Failure struct method PullFailure (line 26) | func (f *Failure) PullFailure() map[string]*request.Request { method UpsertFailure (line 33) | func (f *Failure) UpsertFailure(req *request.Request) bool { method DeleteFailure (line 44) | func (f *Failure) DeleteFailure(req *request.Request) { method flush (line 51) | func (f *Failure) flush(provider string) (r result.Result[int]) { FILE: app/aid/history/failure_test.go function newTestRequest (line 14) | func newTestRequest(url string) *request.Request { function TestFailure_PullFailure (line 20) | func TestFailure_PullFailure(t *testing.T) { function TestFailure_UpsertFailure (line 36) | func TestFailure_UpsertFailure(t *testing.T) { function TestFailure_DeleteFailure (line 57) | func TestFailure_DeleteFailure(t *testing.T) { function TestFailure_Flush_File (line 70) | func TestFailure_Flush_File(t *testing.T) { function TestFailure_Flush_FileEmpty (line 99) | func TestFailure_Flush_FileEmpty(t *testing.T) { function TestFailure_Flush_FileOverwrite (line 124) | func TestFailure_Flush_FileOverwrite(t *testing.T) { FILE: app/aid/history/history.go type HistoryStore (line 24) | type HistoryStore interface type History (line 40) | type History struct method ReadSuccess (line 83) | func (h *History) ReadSuccess(provider string, inherit bool) result.Vo... method ReadFailure (line 162) | func (h *History) ReadFailure(provider string, inherit bool) result.Vo... method Empty (line 267) | func (h *History) Empty() { method FlushSuccess (line 276) | func (h *History) FlushSuccess(provider string) (r result.VoidResult) { method FlushFailure (line 290) | func (h *History) FlushFailure(provider string) (r result.VoidResult) { constant SuccessSuffix (line 49) | SuccessSuffix = config.HistoryTag + "__y" constant FailureSuffix (line 50) | FailureSuffix = config.HistoryTag + "__n" constant SuccessFile (line 51) | SuccessFile = config.HistoryDir + "/" + SuccessSuffix constant FailureFile (line 52) | FailureFile = config.HistoryDir + "/" + FailureSuffix function New (line 56) | func New(name string, subName string) HistoryStore { function getReadMysqlTable (line 308) | func getReadMysqlTable(name string) (*mysql.Table, bool) { function setReadMysqlTable (line 318) | func setReadMysqlTable(name string, tab *mysql.Table) { function getWriteMysqlTable (line 329) | func getWriteMysqlTable(name string) (*mysql.Table, bool) { function setWriteMysqlTable (line 339) | func setWriteMysqlTable(name string, tab *mysql.Table) { FILE: app/aid/history/history_test.go function setupHistoryDir (line 17) | func setupHistoryDir(t *testing.T) (cleanup func()) { function TestNew (line 30) | func TestNew(t *testing.T) { function TestHistory_ReadSuccess_File (line 57) | func TestHistory_ReadSuccess_File(t *testing.T) { function TestHistory_ReadSuccess_EmptyFile (line 92) | func TestHistory_ReadSuccess_EmptyFile(t *testing.T) { function TestHistory_ReadSuccess_InheritPaths (line 107) | func TestHistory_ReadSuccess_InheritPaths(t *testing.T) { function TestHistory_ReadFailure_File (line 130) | func TestHistory_ReadFailure_File(t *testing.T) { function TestHistory_ReadFailure_EmptyFile (line 165) | func TestHistory_ReadFailure_EmptyFile(t *testing.T) { function TestHistory_Empty (line 180) | func TestHistory_Empty(t *testing.T) { function TestHistory_FlushSuccess_File (line 202) | func TestHistory_FlushSuccess_File(t *testing.T) { function TestHistory_FlushFailure_File (line 220) | func TestHistory_FlushFailure_File(t *testing.T) { function TestHistory_FlushSuccess_Empty (line 239) | func TestHistory_FlushSuccess_Empty(t *testing.T) { function TestHistory_FlushFailure_Empty (line 251) | func TestHistory_FlushFailure_Empty(t *testing.T) { function TestHistory_ReadSuccess_FileNotFound (line 263) | func TestHistory_ReadSuccess_FileNotFound(t *testing.T) { function TestHistory_ReadSuccess_ReadFailure_MysqlMock (line 275) | func TestHistory_ReadSuccess_ReadFailure_MysqlMock(t *testing.T) { function TestHistory_ReadSuccess_MysqlDBError (line 314) | func TestHistory_ReadSuccess_MysqlDBError(t *testing.T) { function TestHistory_ReadFailure_MysqlDBError (line 329) | func TestHistory_ReadFailure_MysqlDBError(t *testing.T) { function TestHistory_ReadSuccess_MysqlSelectError (line 344) | func TestHistory_ReadSuccess_MysqlSelectError(t *testing.T) { function TestHistory_FlushSuccess_FlushFailure_MysqlMock (line 365) | func TestHistory_FlushSuccess_FlushFailure_MysqlMock(t *testing.T) { function TestHistory_ReadFailure_InvalidData (line 401) | func TestHistory_ReadFailure_InvalidData(t *testing.T) { FILE: app/aid/history/success.go type Success (line 16) | type Success struct method UpsertSuccess (line 26) | func (s *Success) UpsertSuccess(reqUnique string) bool { method HasSuccess (line 40) | func (s *Success) HasSuccess(reqUnique string) bool { method DeleteSuccess (line 48) | func (s *Success) DeleteSuccess(reqUnique string) { method flush (line 54) | func (s *Success) flush(provider string) result.Result[int] { FILE: app/aid/history/success_test.go function TestSuccess_UpsertSuccess (line 13) | func TestSuccess_UpsertSuccess(t *testing.T) { function TestSuccess_UpsertSuccess_OldExists (line 36) | func TestSuccess_UpsertSuccess_OldExists(t *testing.T) { function TestSuccess_HasSuccess (line 48) | func TestSuccess_HasSuccess(t *testing.T) { function TestSuccess_DeleteSuccess (line 70) | func TestSuccess_DeleteSuccess(t *testing.T) { function TestSuccess_Flush_File (line 83) | func TestSuccess_Flush_File(t *testing.T) { function TestSuccess_Flush_Empty (line 112) | func TestSuccess_Flush_Empty(t *testing.T) { function TestSuccess_Flush_FileAppend (line 128) | func TestSuccess_Flush_FileAppend(t *testing.T) { FILE: app/aid/proxy/host.go type ProxyForHost (line 9) | type ProxyForHost struct method Len (line 18) | func (ph *ProxyForHost) Len() int { method Less (line 22) | func (ph *ProxyForHost) Less(i, j int) bool { method Swap (line 26) | func (ph *ProxyForHost) Swap(i, j int) { FILE: app/aid/proxy/host_test.go function TestProxyForHost_Len (line 8) | func TestProxyForHost_Len(t *testing.T) { function TestProxyForHost_Less (line 26) | func TestProxyForHost_Less(t *testing.T) { function TestProxyForHost_Swap (line 47) | func TestProxyForHost_Swap(t *testing.T) { FILE: app/aid/proxy/proxy.go type Proxy (line 27) | type Proxy struct method Count (line 67) | func (p *Proxy) Count() int32 { method SetSurfForTest (line 72) | func (p *Proxy) SetSurfForTest(s surfer.Surfer) { method Update (line 77) | func (p *Proxy) Update() result.VoidResult { method findOnline (line 105) | func (p *Proxy) findOnline() *Proxy { method UpdateTicker (line 131) | func (p *Proxy) UpdateTicker(tickMinute int64) { method GetOne (line 141) | func (p *Proxy) GetOne(u string) option.Option[string] { method testAndSort (line 200) | func (p *Proxy) testAndSort(key string, testHost string) (*ProxyForHos... method findUsable (line 235) | func (p *Proxy) findUsable(proxy string, testHost string) (alive bool,... constant CONN_TIMEOUT (line 43) | CONN_TIMEOUT = 4 constant DAIL_TIMEOUT (line 44) | DAIL_TIMEOUT = 4 constant TRY_TIMES (line 45) | TRY_TIMES = 3 constant MAX_THREAD_NUM (line 47) | MAX_THREAD_NUM = 1000 function New (line 51) | func New() *Proxy { FILE: app/aid/proxy/proxy_test.go function setupProxyDir (line 16) | func setupProxyDir(t *testing.T) (cleanup func()) { function newTestProxy (line 33) | func newTestProxy() *Proxy { function TestProxy_Update_EmptyFile (line 46) | func TestProxy_Update_EmptyFile(t *testing.T) { function TestProxy_Update_WithIPs (line 61) | func TestProxy_Update_WithIPs(t *testing.T) { function TestProxy_GetOne_NoOnline (line 79) | func TestProxy_GetOne_NoOnline(t *testing.T) { function TestProxy_GetOne_EmptyHost (line 86) | func TestProxy_GetOne_EmptyHost(t *testing.T) { function TestProxy_UpdateTicker (line 93) | func TestProxy_UpdateTicker(t *testing.T) { function TestProxy_New (line 107) | func TestProxy_New(t *testing.T) { function TestProxy_GetOne_WithUsable (line 119) | func TestProxy_GetOne_WithUsable(t *testing.T) { function TestProxy_GetOne_NoUsableForHost (line 141) | func TestProxy_GetOne_NoUsableForHost(t *testing.T) { type mockSurfer (line 160) | type mockSurfer struct method Download (line 164) | func (m *mockSurfer) Download(req surfer.Request) result.Result[*http.... function TestProxy_GetOne_TriggersTestAndSort (line 171) | func TestProxy_GetOne_TriggersTestAndSort(t *testing.T) { function TestProxy_Update_FileNotFound (line 200) | func TestProxy_Update_FileNotFound(t *testing.T) { FILE: app/app.go type App (line 31) | type App interface type Logic (line 54) | type Logic struct method SetLog (line 91) | func (l *Logic) SetLog(w io.Writer) App { method LogRest (line 97) | func (l *Logic) LogRest() App { method LogGoOn (line 103) | func (l *Logic) LogGoOn() App { method GetAppConf (line 109) | func (l *Logic) GetAppConf(k ...string) interface{} { method SetAppConf (line 124) | func (l *Logic) SetAppConf(k string, v interface{}) App { method Init (line 145) | func (l *Logic) Init(mode int, port int, master string, w ...io.Writer... method ReInit (line 189) | func (l *Logic) ReInit(mode int, port int, master string, w ...io.Writ... method SpiderPrepare (line 212) | func (l *Logic) SpiderPrepare(original []*spider.Spider) App { method GetOutputLib (line 229) | func (l *Logic) GetOutputLib() []string { method GetSpiderLib (line 234) | func (l *Logic) GetSpiderLib() []*spider.Spider { method GetSpiderByName (line 239) | func (l *Logic) GetSpiderByName(name string) option.Option[*spider.Spi... method GetMode (line 244) | func (l *Logic) GetMode() int { method GetTaskJar (line 249) | func (l *Logic) GetTaskJar() *distribute.TaskJar { method CountNodes (line 254) | func (l *Logic) CountNodes() int { method GetSpiderQueue (line 259) | func (l *Logic) GetSpiderQueue() crawler.SpiderQueue { method Run (line 264) | func (l *Logic) Run() { method PauseRecover (line 291) | func (l *Logic) PauseRecover() { method Stop (line 303) | func (l *Logic) Stop() { method IsRunning (line 319) | func (l *Logic) IsRunning() bool { method IsPaused (line 324) | func (l *Logic) IsPaused() bool { method IsStopped (line 329) | func (l *Logic) IsStopped() bool { method Status (line 334) | func (l *Logic) Status() int { method setStatus (line 341) | func (l *Logic) setStatus(status int) { method offline (line 350) | func (l *Logic) offline() { method server (line 356) | func (l *Logic) server() { method addNewTask (line 376) | func (l *Logic) addNewTask() (tasksNum, spidersNum int) { method client (line 403) | func (l *Logic) client() { method downTask (line 421) | func (l *Logic) downTask() *distribute.Task { method taskToRun (line 448) | func (l *Logic) taskToRun(t *distribute.Task) { method exec (line 472) | func (l *Logic) exec() { method goRun (line 497) | func (l *Logic) goRun(count int) { method socketLog (line 572) | func (l *Logic) socketLog() { method checkPort (line 585) | func (l *Logic) checkPort() bool { method checkAll (line 593) | func (l *Logic) checkAll() bool { method setAppConf (line 602) | func (l *Logic) setAppConf(task *distribute.Task) { method setTask (line 613) | func (l *Logic) setTask(task *distribute.Task) { function New (line 74) | func New() App { function newLogic (line 78) | func newLogic() *Logic { function titleCase (line 625) | func titleCase(s string) string { FILE: app/app_test.go function TestNew (line 12) | func TestNew(t *testing.T) { function TestLogic_SetLog_LogGoOn_LogRest (line 19) | func TestLogic_SetLog_LogGoOn_LogRest(t *testing.T) { function TestLogic_GetAppConf (line 27) | func TestLogic_GetAppConf(t *testing.T) { function TestLogic_SetAppConf (line 42) | func TestLogic_SetAppConf(t *testing.T) { function TestLogic_GetSpiderLib (line 59) | func TestLogic_GetSpiderLib(t *testing.T) { function TestLogic_GetSpiderByName (line 67) | func TestLogic_GetSpiderByName(t *testing.T) { function TestLogic_GetSpiderQueue (line 75) | func TestLogic_GetSpiderQueue(t *testing.T) { function TestLogic_GetOutputLib (line 86) | func TestLogic_GetOutputLib(t *testing.T) { function TestLogic_GetTaskJar (line 94) | func TestLogic_GetTaskJar(t *testing.T) { function TestLogic_Status_IsRunning_IsPaused_IsStopped (line 102) | func TestLogic_Status_IsRunning_IsPaused_IsStopped(t *testing.T) { function TestLogic_Init_Offline (line 118) | func TestLogic_Init_Offline(t *testing.T) { function TestLogic_Init_Server_invalidPort (line 126) | func TestLogic_Init_Server_invalidPort(t *testing.T) { function TestLogic_Init_Server_validPort (line 134) | func TestLogic_Init_Server_validPort(t *testing.T) { function TestLogic_Init_Client_invalidMaster (line 142) | func TestLogic_Init_Client_invalidMaster(t *testing.T) { function TestLogic_Init_invalidMode (line 150) | func TestLogic_Init_invalidMode(t *testing.T) { function TestLogic_GetMode (line 158) | func TestLogic_GetMode(t *testing.T) { function TestLogic_ReInit (line 166) | func TestLogic_ReInit(t *testing.T) { function TestLogic_GetAppConf_titleCase (line 175) | func TestLogic_GetAppConf_titleCase(t *testing.T) { function TestLogic_SpiderPrepare (line 184) | func TestLogic_SpiderPrepare(t *testing.T) { function TestLogic_Run_emptyQueue (line 203) | func TestLogic_Run_emptyQueue(t *testing.T) { function TestLogic_Stop_whenStopped (line 209) | func TestLogic_Stop_whenStopped(t *testing.T) { function TestLogic_PauseRecover (line 214) | func TestLogic_PauseRecover(t *testing.T) { function TestLogic_Run_offline_withSpiders (line 220) | func TestLogic_Run_offline_withSpiders(t *testing.T) { function TestLogic_Run_server_withSpiders (line 238) | func TestLogic_Run_server_withSpiders(t *testing.T) { FILE: app/crawler/crawler.go type Crawler (line 21) | type Crawler interface type crawler (line 28) | type crawler struct method Init (line 50) | func (c *crawler) Init(sp *spider.Spider) Crawler { method Run (line 63) | func (c *crawler) Run() { method Stop (line 80) | func (c *crawler) Stop() { method run (line 85) | func (c *crawler) run() { method Process (line 112) | func (c *crawler) Process(req *request.Request) { method sleep (line 176) | func (c *crawler) sleep() { method GetOne (line 182) | func (c *crawler) GetOne() *request.Request { method UseOne (line 187) | func (c *crawler) UseOne() { method FreeOne (line 192) | func (c *crawler) FreeOne() { method SetID (line 197) | func (c *crawler) SetID(id int) { method GetID (line 202) | func (c *crawler) GetID() int { function New (line 40) | func New(id int, dl downloader.Downloader, outType string, batchCap int)... FILE: app/crawler/crawler_test.go function TestNew (line 14) | func TestNew(t *testing.T) { function TestCrawler_GetID (line 24) | func TestCrawler_GetID(t *testing.T) { function TestCrawler_Init (line 31) | func TestCrawler_Init(t *testing.T) { function TestCrawler_Init_zeroPause (line 45) | func TestCrawler_Init_zeroPause(t *testing.T) { function TestCrawler_GetOne_UseOne_FreeOne (line 57) | func TestCrawler_GetOne_UseOne_FreeOne(t *testing.T) { function TestCrawler_CanStop (line 75) | func TestCrawler_CanStop(t *testing.T) { function TestCrawler_Stop (line 89) | func TestCrawler_Stop(t *testing.T) { function TestCrawler_SetID (line 101) | func TestCrawler_SetID(t *testing.T) { type errorDownloader (line 109) | type errorDownloader struct method Download (line 111) | func (d *errorDownloader) Download(sp *spider.Spider, req *request.Req... function TestCrawler_Process_downloadError (line 117) | func TestCrawler_Process_downloadError(t *testing.T) { function TestCrawler_Run (line 131) | func TestCrawler_Run(t *testing.T) { type successDownloader (line 153) | type successDownloader struct method Download (line 155) | func (d *successDownloader) Download(sp *spider.Spider, req *request.R... function TestCrawler_Process_success (line 161) | func TestCrawler_Process_success(t *testing.T) { FILE: app/crawler/crawlerpool.go type CrawlerPool (line 15) | type CrawlerPool interface type cq (line 23) | type cq struct method SetPipelineConfig (line 46) | func (cq *cq) SetPipelineConfig(outType string, batchCap int) { method Reset (line 55) | func (cq *cq) Reset(spiderNum int) int { method Use (line 81) | func (cq *cq) Use() Crawler { method UseOpt (line 86) | func (cq *cq) UseOpt() option.Option[Crawler] { method Free (line 113) | func (cq *cq) Free(crawler Crawler) { method Stop (line 123) | func (cq *cq) Stop() { function NewCrawlerPool (line 37) | func NewCrawlerPool(dl downloader.Downloader) CrawlerPool { FILE: app/crawler/crawlerpool_test.go type mockDownloader (line 13) | type mockDownloader struct method Download (line 15) | func (d *mockDownloader) Download(_ *spider.Spider, _ *request.Request... function TestNewCrawlerPool (line 19) | func TestNewCrawlerPool(t *testing.T) { function TestCrawlerPool_SetPipelineConfig (line 27) | func TestCrawlerPool_SetPipelineConfig(t *testing.T) { function TestCrawlerPool_Reset (line 32) | func TestCrawlerPool_Reset(t *testing.T) { function TestCrawlerPool_Use_UseOpt_Free (line 57) | func TestCrawlerPool_Use_UseOpt_Free(t *testing.T) { function TestCrawlerPool_UseOpt_returnsSome (line 86) | func TestCrawlerPool_UseOpt_returnsSome(t *testing.T) { function TestCrawlerPool_Stop (line 102) | func TestCrawlerPool_Stop(t *testing.T) { function TestCrawlerPool_Reset_reuse (line 114) | func TestCrawlerPool_Reset_reuse(t *testing.T) { function TestCrawlerPool_Stop_idempotent (line 137) | func TestCrawlerPool_Stop_idempotent(t *testing.T) { function TestCrawlerPool_Free_whenStopped (line 144) | func TestCrawlerPool_Free_whenStopped(t *testing.T) { FILE: app/crawler/spiderqueue.go type SpiderQueue (line 12) | type SpiderQueue interface type sq (line 24) | type sq struct method Reset (line 37) | func (sq *sq) Reset() { method Add (line 42) | func (sq *sq) Add(sp *spider.Spider) { method AddAll (line 48) | func (sq *sq) AddAll(list []*spider.Spider) { method AddKeyins (line 56) | func (sq *sq) AddKeyins(keyins string) { method GetByIndex (line 93) | func (sq *sq) GetByIndex(idx int) *spider.Spider { method GetByIndexOpt (line 98) | func (sq *sq) GetByIndexOpt(idx int) option.Option[*spider.Spider] { method GetByName (line 106) | func (sq *sq) GetByName(n string) *spider.Spider { method GetByNameOpt (line 111) | func (sq *sq) GetByNameOpt(n string) option.Option[*spider.Spider] { method GetAll (line 121) | func (sq *sq) GetAll() []*spider.Spider { method Len (line 126) | func (sq *sq) Len() int { function NewSpiderQueue (line 30) | func NewSpiderQueue() SpiderQueue { FILE: app/crawler/spiderqueue_test.go function makeSpider (line 9) | func makeSpider(name string, keyin string) *spider.Spider { function TestNewSpiderQueue (line 19) | func TestNewSpiderQueue(t *testing.T) { function TestSpiderQueue_Add_Len_Reset (line 29) | func TestSpiderQueue_Add_Len_Reset(t *testing.T) { function TestSpiderQueue_AddAll (line 56) | func TestSpiderQueue_AddAll(t *testing.T) { function TestSpiderQueue_GetByIndex_GetByIndexOpt (line 75) | func TestSpiderQueue_GetByIndex_GetByIndexOpt(t *testing.T) { function TestSpiderQueue_GetByName_GetByNameOpt (line 108) | func TestSpiderQueue_GetByName_GetByNameOpt(t *testing.T) { function TestSpiderQueue_AddKeyins (line 140) | func TestSpiderQueue_AddKeyins(t *testing.T) { function TestSpiderQueue_Add_setsID (line 165) | func TestSpiderQueue_Add_setsID(t *testing.T) { function TestSpiderQueue_GetByIndexOpt (line 179) | func TestSpiderQueue_GetByIndexOpt(t *testing.T) { function TestSpiderQueue_AddKeyins_emptyUnit2 (line 187) | func TestSpiderQueue_AddKeyins_emptyUnit2(t *testing.T) { FILE: app/distribute/integration_test.go function freePort (line 13) | func freePort(t *testing.T) string { function TestTP_ServerClient_Request (line 22) | func TestTP_ServerClient_Request(t *testing.T) { FILE: app/distribute/interface.go type Distributor (line 4) | type Distributor interface FILE: app/distribute/master_api.go function MasterAPI (line 12) | func MasterAPI(n Distributor) teleport.API { type masterTaskHandle (line 20) | type masterTaskHandle struct method Process (line 24) | func (mth *masterTaskHandle) Process(receive *teleport.NetData) *telep... type masterLogHandle (line 33) | type masterLogHandle struct method Process (line 35) | func (*masterLogHandle) Process(receive *teleport.NetData) *teleport.N... FILE: app/distribute/master_api_test.go type mockDistributor (line 10) | type mockDistributor struct method Send (line 17) | func (m *mockDistributor) Send(clientNum int) Task { method Receive (line 22) | func (m *mockDistributor) Receive(task *Task) { method CountNodes (line 26) | func (m *mockDistributor) CountNodes() int { function TestMasterAPI (line 30) | func TestMasterAPI(t *testing.T) { function TestMasterTaskHandle_Process (line 44) | func TestMasterTaskHandle_Process(t *testing.T) { function TestMasterLogHandle_Process (line 70) | func TestMasterLogHandle_Process(t *testing.T) { FILE: app/distribute/slave_api.go function SlaveAPI (line 12) | func SlaveAPI(n Distributor) teleport.API { type slaveTaskHandle (line 19) | type slaveTaskHandle struct method Process (line 23) | func (sth *slaveTaskHandle) Process(receive *teleport.NetData) *telepo... FILE: app/distribute/slave_api_test.go function TestSlaveAPI (line 10) | func TestSlaveAPI(t *testing.T) { function TestSlaveTaskHandle_Process (line 21) | func TestSlaveTaskHandle_Process(t *testing.T) { function TestSlaveTaskHandle_Process_InvalidJSON (line 38) | func TestSlaveTaskHandle_Process_InvalidJSON(t *testing.T) { FILE: app/distribute/task.go type Task (line 5) | type Task struct FILE: app/distribute/task_test.go function TestTask_Fields (line 7) | func TestTask_Fields(t *testing.T) { FILE: app/distribute/taskjar.go type TaskJar (line 4) | type TaskJar struct method Push (line 16) | func (tj *TaskJar) Push(task *Task) { method Pull (line 23) | func (tj *TaskJar) Pull() *Task { method Len (line 28) | func (tj *TaskJar) Len() int { method Send (line 33) | func (tj *TaskJar) Send(clientNum int) Task { method Receive (line 38) | func (tj *TaskJar) Receive(task *Task) { method CountNodes (line 43) | func (tj *TaskJar) CountNodes() int { function NewTaskJar (line 9) | func NewTaskJar() *TaskJar { FILE: app/distribute/taskjar_test.go function TestNewTaskJar (line 8) | func TestNewTaskJar(t *testing.T) { function TestTaskJar_PushPull (line 21) | func TestTaskJar_PushPull(t *testing.T) { function TestTaskJar_SendReceive (line 37) | func TestTaskJar_SendReceive(t *testing.T) { function TestTaskJar_PushAssignsID (line 61) | func TestTaskJar_PushAssignsID(t *testing.T) { function TestTaskJar_CountNodes (line 77) | func TestTaskJar_CountNodes(t *testing.T) { function TestTaskJar_Concurrent (line 84) | func TestTaskJar_Concurrent(t *testing.T) { FILE: app/distribute/teleport/client.go type tpClient (line 12) | type tpClient struct method Client (line 19) | func (tp *TP) Client(serverAddr string, port string, isShort ...bool) { method client (line 47) | func (tp *TP) client() { method cGoConn (line 77) | func (tp *TP) cGoConn(conn net.Conn) { method cReader (line 99) | func (tp *TP) cReader(nodeuid string) { method cWriter (line 114) | func (tp *TP) cWriter(nodeuid string) { FILE: app/distribute/teleport/conn.go type Connect (line 8) | type Connect struct method Addr (line 31) | func (conn *Connect) Addr() string { function NewConnect (line 18) | func NewConnect(conn net.Conn, bufferLen int, wChanCap int) (k string, v... FILE: app/distribute/teleport/conn_test.go function TestNewConnect (line 8) | func TestNewConnect(t *testing.T) { function TestConnect_Addr (line 31) | func TestConnect_Addr(t *testing.T) { FILE: app/distribute/teleport/debug.go function debugPrintf (line 9) | func debugPrintf(format string, v ...interface{}) { function debugPrintln (line 16) | func debugPrintln(v ...interface{}) { function debugFatal (line 23) | func debugFatal(v ...interface{}) { FILE: app/distribute/teleport/netdata.go constant SUCCESS (line 4) | SUCCESS = 0 constant FAILURE (line 5) | FAILURE = -1 constant LLLEGAL (line 6) | LLLEGAL = -2 type NetData (line 10) | type NetData struct function NewNetData (line 20) | func NewNetData(from, to, operation string, flag string, body interface{... FILE: app/distribute/teleport/netdata_test.go function TestNewNetData (line 7) | func TestNewNetData(t *testing.T) { FILE: app/distribute/teleport/protocol.go constant DataLengthOfLenth (line 9) | DataLengthOfLenth = 4 type Protocol (line 13) | type Protocol struct method ReSet (line 26) | func (p *Protocol) ReSet(header string) { method Packet (line 32) | func (p *Protocol) Packet(message []byte) []byte { method Unpack (line 37) | func (p *Protocol) Unpack(buffer []byte) (readerSlice [][]byte, buffer... function NewProtocol (line 19) | func NewProtocol(packetHeader string) *Protocol { function IntToBytes (line 67) | func IntToBytes(n int) []byte { function BytesToInt (line 76) | func BytesToInt(b []byte) int { FILE: app/distribute/teleport/protocol_test.go function TestNewProtocol (line 8) | func TestNewProtocol(t *testing.T) { function TestProtocol_ReSet (line 33) | func TestProtocol_ReSet(t *testing.T) { function TestProtocol_Packet (line 44) | func TestProtocol_Packet(t *testing.T) { function TestProtocol_Unpack (line 54) | func TestProtocol_Unpack(t *testing.T) { function TestProtocol_Unpack_Multiple (line 70) | func TestProtocol_Unpack_Multiple(t *testing.T) { function TestProtocol_Unpack_Partial (line 90) | func TestProtocol_Unpack_Partial(t *testing.T) { function TestProtocol_Unpack_GarbageBeforeHeader (line 104) | func TestProtocol_Unpack_GarbageBeforeHeader(t *testing.T) { function TestProtocol_Unpack_EmptyBuffer (line 121) | func TestProtocol_Unpack_EmptyBuffer(t *testing.T) { function TestProtocol_Unpack_TooShort (line 132) | func TestProtocol_Unpack_TooShort(t *testing.T) { function TestIntToBytes_BytesToInt (line 143) | func TestIntToBytes_BytesToInt(t *testing.T) { FILE: app/distribute/teleport/return_func.go function ReturnData (line 4) | func ReturnData(body interface{}, OpAndToAndFrom ...string) *NetData { function ReturnError (line 22) | func ReturnError(receive *NetData, status int, msg string, nodeuid ...st... FILE: app/distribute/teleport/return_func_test.go function TestReturnData (line 7) | func TestReturnData(t *testing.T) { function TestReturnError (line 48) | func TestReturnError(t *testing.T) { function TestReturnError_NoNodeUID (line 68) | func TestReturnError_NoNodeUID(t *testing.T) { FILE: app/distribute/teleport/server.go type tpServer (line 13) | type tpServer struct method Server (line 18) | func (tp *TP) Server(port ...string) { method server (line 38) | func (tp *TP) server() { method sGoConn (line 62) | func (tp *TP) sGoConn(conn net.Conn) { method sInitConn (line 75) | func (tp *TP) sInitConn(conn *Connect, remoteAddr string) (nodeuid strin... method sReader (line 120) | func (tp *TP) sReader(nodeuid string) { method sWriter (line 138) | func (tp *TP) sWriter(nodeuid string) { FILE: app/distribute/teleport/teleport.go constant SERVER (line 16) | SERVER = iota + 1 constant CLIENT (line 17) | CLIENT constant IDENTITY (line 22) | IDENTITY = "+identity+" constant HEARTBEAT (line 23) | HEARTBEAT = "+heartbeat+" constant DEFAULT_PACK_HEADER (line 24) | DEFAULT_PACK_HEADER = "andeya" constant DEFAULT_SERVER_UID (line 25) | DEFAULT_SERVER_UID = "server" constant DEFAULT_PORT (line 26) | DEFAULT_PORT = ":8080" constant DEFAULT_TIMEOUT_S (line 27) | DEFAULT_TIMEOUT_S = 20e9 constant DEFAULT_TIMEOUT_C (line 28) | DEFAULT_TIMEOUT_C = 15e9 constant LOOP_TIMEOUT (line 29) | LOOP_TIMEOUT = 1e9 type Teleport (line 32) | type Teleport interface type TP (line 50) | type TP struct method SetUID (line 89) | func (tp *TP) SetUID(mine string, server ...string) Teleport { method SetAPI (line 98) | func (tp *TP) SetAPI(api API) Teleport { method Request (line 104) | func (tp *TP) Request(body interface{}, operation string, flag string,... method Close (line 130) | func (tp *TP) Close(nodeuid ...string) { method SetPackHeader (line 166) | func (tp *TP) SetPackHeader(header string) Teleport { method SetApiRChan (line 172) | func (tp *TP) SetApiRChan(length int) Teleport { method SetConnWChan (line 178) | func (tp *TP) SetConnWChan(length int) Teleport { method SetConnBuffer (line 184) | func (tp *TP) SetConnBuffer(length int) Teleport { method SetTimeout (line 190) | func (tp *TP) SetTimeout(long time.Duration) Teleport { method GetMode (line 196) | func (tp *TP) GetMode() int { method CountNodes (line 201) | func (tp *TP) CountNodes() int { method read (line 211) | func (tp *TP) read(conn *Connect) bool { method getConn (line 222) | func (tp *TP) getConn(nodeuid string) *Connect { method getConnAddr (line 227) | func (tp *TP) getConnAddr(nodeuid string) string { method closeConn (line 236) | func (tp *TP) closeConn(nodeuid string, reconnect bool) { method closeMsg (line 256) | func (tp *TP) closeMsg(uid, addr string, short bool) { method send (line 269) | func (tp *TP) send(data *NetData) { method save (line 292) | func (tp *TP) save(conn *Connect) { method apiHandle (line 314) | func (tp *TP) apiHandle() { method autoErrorHandle (line 375) | func (tp *TP) autoErrorHandle(data *NetData, status int, msg string, r... method checkRights (line 388) | func (tp *TP) checkRights(data *NetData, addr string) bool { method reserveAPI (line 397) | func (tp *TP) reserveAPI() { type API (line 66) | type API type Handle (line 69) | type Handle interface function New (line 74) | func New() Teleport { type identity (line 404) | type identity struct method Process (line 406) | func (*identity) Process(receive *NetData) *NetData { type heartbeat (line 410) | type heartbeat struct method Process (line 412) | func (*heartbeat) Process(receive *NetData) *NetData { FILE: app/distribute/teleport/teleport_test.go function freePort (line 12) | func freePort(t *testing.T) string { function TestNew (line 21) | func TestNew(t *testing.T) { function TestTP_SetUID (line 34) | func TestTP_SetUID(t *testing.T) { function TestTP_SetPackHeader (line 46) | func TestTP_SetPackHeader(t *testing.T) { function TestTP_SetApiRChan (line 54) | func TestTP_SetApiRChan(t *testing.T) { function TestTP_SetConnWChan (line 62) | func TestTP_SetConnWChan(t *testing.T) { function TestTP_SetConnBuffer (line 70) | func TestTP_SetConnBuffer(t *testing.T) { function TestTP_SetTimeout (line 78) | func TestTP_SetTimeout(t *testing.T) { function TestTP_SetAPI (line 87) | func TestTP_SetAPI(t *testing.T) { function TestTP_ServerClient_Pipe (line 96) | func TestTP_ServerClient_Pipe(t *testing.T) { type echoHandle (line 124) | type echoHandle struct method Process (line 126) | func (*echoHandle) Process(receive *NetData) *NetData { function TestTP_CloseSpecificNode (line 130) | func TestTP_CloseSpecificNode(t *testing.T) { function TestConnect_Close (line 150) | func TestConnect_Close(t *testing.T) { function TestTP_CheckRightsReject (line 159) | func TestTP_CheckRightsReject(t *testing.T) { function TestDebugPrint (line 185) | func TestDebugPrint(t *testing.T) { function TestTP_GetConnAddr (line 192) | func TestTP_GetConnAddr(t *testing.T) { FILE: app/distribute/teleport/util.go function MakeHash (line 14) | func MakeHash(s string) string { function HashString (line 22) | func HashString(encode string) uint64 { function MakeUnique (line 29) | func MakeUnique(obj interface{}) string { function MakeMd5 (line 35) | func MakeMd5(obj interface{}, length int) string { FILE: app/distribute/teleport/util_test.go function TestMakeHash (line 7) | func TestMakeHash(t *testing.T) { function TestHashString (line 24) | func TestHashString(t *testing.T) { function TestMakeUnique (line 40) | func TestMakeUnique(t *testing.T) { function TestMakeMd5 (line 56) | func TestMakeMd5(t *testing.T) { FILE: app/downloader/downloader.go type Downloader (line 12) | type Downloader interface FILE: app/downloader/downloader_surfer.go type Surfer (line 16) | type Surfer struct method Download (line 35) | func (s *Surfer) Download(sp *spider.Spider, cReq *request.Request) *s... FILE: app/downloader/downloader_test.go function TestSurferDownloader_implementsInterface (line 12) | func TestSurferDownloader_implementsInterface(t *testing.T) { function makeSpiderNotStopping (line 16) | func makeSpiderNotStopping(name string) *spider.Spider { function TestSurferDownloader_Download_SurfID (line 25) | func TestSurferDownloader_Download_SurfID(t *testing.T) { function TestSurferDownloader_Download_SurfID_error (line 51) | func TestSurferDownloader_Download_SurfID_error(t *testing.T) { function TestSurferDownloader_Download_SurfID_4xx (line 70) | func TestSurferDownloader_Download_SurfID_4xx(t *testing.T) { function TestSurferDownloader_Download_SurfID_badURL (line 89) | func TestSurferDownloader_Download_SurfID_badURL(t *testing.T) { FILE: app/downloader/request/request.go type Request (line 20) | type Request struct method Prepare (line 64) | func (r *Request) Prepare() result.VoidResult { method Serialize (line 126) | func (r *Request) Serialize() result.Result[string] { method Unique (line 139) | func (r *Request) Unique() string { method Copy (line 148) | func (r *Request) Copy() result.Result[*Request] { method GetURL (line 158) | func (r *Request) GetURL() string { method GetMethod (line 163) | func (r *Request) GetMethod() string { method SetMethod (line 168) | func (r *Request) SetMethod(method string) *Request { method SetURL (line 173) | func (r *Request) SetURL(url string) *Request { method GetReferer (line 178) | func (r *Request) GetReferer() string { method SetReferer (line 182) | func (r *Request) SetReferer(referer string) *Request { method GetPostData (line 187) | func (r *Request) GetPostData() string { method GetHeader (line 191) | func (r *Request) GetHeader() http.Header { method SetHeader (line 195) | func (r *Request) SetHeader(key, value string) *Request { method AddHeader (line 200) | func (r *Request) AddHeader(key, value string) *Request { method GetEnableCookie (line 205) | func (r *Request) GetEnableCookie() bool { method SetEnableCookie (line 209) | func (r *Request) SetEnableCookie(enableCookie bool) *Request { method GetCookies (line 214) | func (r *Request) GetCookies() string { method SetCookies (line 218) | func (r *Request) SetCookies(cookie string) *Request { method GetDialTimeout (line 223) | func (r *Request) GetDialTimeout() time.Duration { method GetConnTimeout (line 227) | func (r *Request) GetConnTimeout() time.Duration { method GetTryTimes (line 231) | func (r *Request) GetTryTimes() int { method GetRetryPause (line 235) | func (r *Request) GetRetryPause() time.Duration { method GetProxy (line 239) | func (r *Request) GetProxy() string { method SetProxy (line 243) | func (r *Request) SetProxy(proxy string) *Request { method GetRedirectTimes (line 248) | func (r *Request) GetRedirectTimes() int { method GetRuleName (line 252) | func (r *Request) GetRuleName() string { method SetRuleName (line 256) | func (r *Request) SetRuleName(ruleName string) *Request { method GetSpiderName (line 261) | func (r *Request) GetSpiderName() string { method SetSpiderName (line 265) | func (r *Request) SetSpiderName(spiderName string) *Request { method IsReloadable (line 270) | func (r *Request) IsReloadable() bool { method SetReloadable (line 274) | func (r *Request) SetReloadable(can bool) *Request { method GetTemp (line 280) | func (r *Request) GetTemp(key string, defaultValue interface{}) interf... method GetTempOpt (line 299) | func (r *Request) GetTempOpt(key string) option.Option[interface{}] { method GetTemps (line 314) | func (r *Request) GetTemps() Temp { method SetTemp (line 318) | func (r *Request) SetTemp(key string, value interface{}) *Request { method SetTemps (line 326) | func (r *Request) SetTemps(temp map[string]interface{}) *Request { method GetPriority (line 334) | func (r *Request) GetPriority() int { method SetPriority (line 338) | func (r *Request) SetPriority(priority int) *Request { method GetDownloaderID (line 343) | func (r *Request) GetDownloaderID() int { method SetDownloaderID (line 347) | func (r *Request) SetDownloaderID(id int) *Request { method MarshalJSON (line 352) | func (r *Request) MarshalJSON() ([]byte, error) { constant DefaultDialTimeout (line 46) | DefaultDialTimeout = 2 * time.Minute constant DefaultConnTimeout (line 47) | DefaultConnTimeout = 2 * time.Minute constant DefaultTryTimes (line 48) | DefaultTryTimes = 3 constant DefaultRetryPause (line 49) | DefaultRetryPause = 2 * time.Second constant SurfID (line 53) | SurfID = 0 constant PhantomID (line 54) | PhantomID = 1 constant ChromeID (line 55) | ChromeID = 2 function UnSerialize (line 120) | func UnSerialize(s string) result.Result[*Request] { FILE: app/downloader/request/request_test.go function TestReqTemp (line 10) | func TestReqTemp(t *testing.T) { type x (line 59) | type x struct function TestPrepare (line 63) | func TestPrepare(t *testing.T) { function TestSerializeUnSerialize (line 137) | func TestSerializeUnSerialize(t *testing.T) { function TestUnSerializeInvalid (line 166) | func TestUnSerializeInvalid(t *testing.T) { function TestUnique (line 173) | func TestUnique(t *testing.T) { function TestCopy (line 183) | func TestCopy(t *testing.T) { function TestGettersSetters (line 200) | func TestGettersSetters(t *testing.T) { function TestGetTempOpt (line 330) | func TestGetTempOpt(t *testing.T) { function TestGetTemps (line 356) | func TestGetTemps(t *testing.T) { function TestSetTemps (line 365) | func TestSetTemps(t *testing.T) { function TestGetTempPanic (line 374) | func TestGetTempPanic(t *testing.T) { FILE: app/downloader/request/temp.go type Temp (line 11) | type Temp method get (line 14) | func (t Temp) get(key string, defaultValue interface{}) interface{} { method set (line 37) | func (t Temp) set(key string, value interface{}) Temp { FILE: app/downloader/surfer/agent/agent.go type TemplateData (line 19) | type TemplateData struct type OSAttributes (line 28) | type OSAttributes struct constant Windows (line 39) | Windows int = iota constant Linux (line 41) | Linux constant Macintosh (line 43) | Macintosh type Formats (line 57) | type Formats type UAData (line 60) | type UAData struct type UATable (line 68) | type UATable function init (line 153) | func init() { function CreateReal (line 182) | func CreateReal() string { function CreateDefault (line 187) | func CreateDefault(browser string) string { function CreateVersion (line 202) | func CreateVersion(browser, version string) string { function TopVersion (line 217) | func TopVersion(bname string) string { function Format (line 231) | func Format(bname, bver string) string { function createFromDetails (line 250) | func createFromDetails(bname, bver, osname, osver string, c []string) st... FILE: app/downloader/surfer/agent/agent_bsd.go function osName (line 12) | func osName() string { function osVersion (line 21) | func osVersion() string { FILE: app/downloader/surfer/agent/agent_linux.go function osName (line 11) | func osName() string { function osVersion (line 21) | func osVersion() string { function charsToString (line 31) | func charsToString(ca [65]int8) string { FILE: app/downloader/surfer/agent/agent_linux_arm.go function osName (line 11) | func osName() string { function osVersion (line 21) | func osVersion() string { function charsToString (line 31) | func charsToString(ca [65]uint8) string { FILE: app/downloader/surfer/agent/agent_test.go function TestUserAgentsPopulated (line 8) | func TestUserAgentsPopulated(t *testing.T) { function TestCreateReal (line 20) | func TestCreateReal(t *testing.T) { function TestCreateDefault (line 30) | func TestCreateDefault(t *testing.T) { function TestCreateVersion (line 42) | func TestCreateVersion(t *testing.T) { function TestTopVersion (line 52) | func TestTopVersion(t *testing.T) { function TestFormat (line 71) | func TestFormat(t *testing.T) { function TestFormatFallbackToTopVersion (line 86) | func TestFormatFallbackToTopVersion(t *testing.T) { function TestFormatUnknownVersion (line 93) | func TestFormatUnknownVersion(t *testing.T) { function TestCreateVersionVariousBrowsers (line 112) | func TestCreateVersionVariousBrowsers(t *testing.T) { function TestDatabaseContainsExpectedBrowsers (line 136) | func TestDatabaseContainsExpectedBrowsers(t *testing.T) { function TestDefaultOSAttributes (line 145) | func TestDefaultOSAttributes(t *testing.T) { FILE: app/downloader/surfer/agent/agent_windows.go function osName (line 13) | func osName() string { function osVersion (line 18) | func osVersion() string { FILE: app/downloader/surfer/chrome.go type Chrome (line 26) | type Chrome struct method ensureBrowser (line 48) | func (c *Chrome) ensureBrowser(ua string) { method Download (line 86) | func (c *Chrome) Download(req Request) (r result.Result[*http.Response... function NewChrome (line 36) | func NewChrome(jar ...*cookiejar.Jar) Surfer { function chromeAllocatorOpts (line 60) | func chromeAllocatorOpts(ua string) []chromedp.ExecAllocatorOption { function hideWebdriver (line 81) | func hideWebdriver() chromedp.Action { function tryDownload (line 161) | func tryDownload(ctx context.Context, targetURL string) (string, error) { function waitUntilNotVerification (line 205) | func waitUntilNotVerification(ctx context.Context, maxWait time.Duration) { function isVerificationPage (line 217) | func isVerificationPage(ctx context.Context) bool { FILE: app/downloader/surfer/chrome_stub.go type ChromeStub (line 13) | type ChromeStub struct method Download (line 27) | func (c *ChromeStub) Download(req Request) result.Result[*http.Respons... function NewChrome (line 17) | func NewChrome(jar ...*cookiejar.Jar) Surfer { FILE: app/downloader/surfer/chrome_test.go function TestChromeDownloaderBaiduSearch (line 9) | func TestChromeDownloaderBaiduSearch(t *testing.T) { function TestChromeDownloaderReuseSession (line 45) | func TestChromeDownloaderReuseSession(t *testing.T) { function TestExtractHomepage (line 75) | func TestExtractHomepage(t *testing.T) { FILE: app/downloader/surfer/example/example.go function main (line 11) | func main() { FILE: app/downloader/surfer/param.go type Param (line 32) | type Param struct method writeback (line 111) | func (p *Param) writeback(resp *http.Response) *http.Response { method checkRedirect (line 133) | func (p *Param) checkRedirect(req *http.Request, via []*http.Request) ... function NewParam (line 47) | func NewParam(req Request) (r result.Result[*Param]) { FILE: app/downloader/surfer/param_test.go function TestNewParam (line 10) | func TestNewParam(t *testing.T) { function TestNewParamWithProxy (line 76) | func TestNewParamWithProxy(t *testing.T) { function TestNewParamWithUserAgent (line 91) | func TestNewParamWithUserAgent(t *testing.T) { function TestRedirectUnlimited (line 106) | func TestRedirectUnlimited(t *testing.T) { function TestRedirectLimited (line 140) | func TestRedirectLimited(t *testing.T) { function TestRedirectNotAllowed (line 163) | func TestRedirectNotAllowed(t *testing.T) { FILE: app/downloader/surfer/phantom.go type Phantom (line 40) | type Phantom struct method Download (line 101) | func (p *Phantom) Download(req Request) (r result.Result[*http.Respons... method DestroyJsFiles (line 208) | func (p *Phantom) DestroyJsFiles() { method createJsFile (line 221) | func (p *Phantom) createJsFile(fileName, jsCode string) { type Response (line 47) | type Response struct type Cookie (line 58) | type Cookie struct function NewPhantom (line 66) | func NewPhantom(phantomjsFile, tempJsDir string, jar ...*cookiejar.Jar) ... constant js (line 239) | js string = ` FILE: app/downloader/surfer/phantom_stub.go type PhantomStub (line 13) | type PhantomStub struct method Download (line 27) | func (p *PhantomStub) Download(req Request) result.Result[*http.Respon... method DestroyJsFiles (line 31) | func (p *PhantomStub) DestroyJsFiles() {} function NewPhantom (line 17) | func NewPhantom(phantomjsFile, tempJsDir string, jar ...*cookiejar.Jar) ... FILE: app/downloader/surfer/request.go type Request (line 25) | type Request interface type DefaultRequest (line 53) | type DefaultRequest struct method prepare (line 95) | func (dr *DefaultRequest) prepare() { method GetURL (line 131) | func (dr *DefaultRequest) GetURL() string { method GetMethod (line 137) | func (dr *DefaultRequest) GetMethod() string { method GetPostData (line 143) | func (dr *DefaultRequest) GetPostData() string { method GetHeader (line 149) | func (dr *DefaultRequest) GetHeader() http.Header { method GetEnableCookie (line 155) | func (dr *DefaultRequest) GetEnableCookie() bool { method GetDialTimeout (line 161) | func (dr *DefaultRequest) GetDialTimeout() time.Duration { method GetConnTimeout (line 167) | func (dr *DefaultRequest) GetConnTimeout() time.Duration { method GetTryTimes (line 173) | func (dr *DefaultRequest) GetTryTimes() int { method GetRetryPause (line 179) | func (dr *DefaultRequest) GetRetryPause() time.Duration { method GetProxy (line 185) | func (dr *DefaultRequest) GetProxy() string { method GetRedirectTimes (line 191) | func (dr *DefaultRequest) GetRedirectTimes() int { method GetDownloaderID (line 197) | func (dr *DefaultRequest) GetDownloaderID() int { constant SurfID (line 83) | SurfID = 0 constant PhantomJsID (line 84) | PhantomJsID = 1 constant ChromeID (line 85) | ChromeID = 2 constant PhomtomJsID (line 87) | PhomtomJsID = PhantomJsID constant DefaultMethod (line 88) | DefaultMethod = "GET" constant DefaultDialTimeout (line 89) | DefaultDialTimeout = 2 * time.Minute constant DefaultConnTimeout (line 90) | DefaultConnTimeout = 2 * time.Minute constant DefaultTryTimes (line 91) | DefaultTryTimes = 3 constant DefaultRetryPause (line 92) | DefaultRetryPause = 2 * time.Second FILE: app/downloader/surfer/request_test.go function TestDefaultRequestPrepare (line 9) | func TestDefaultRequestPrepare(t *testing.T) { function TestDefaultRequestGetters (line 133) | func TestDefaultRequestGetters(t *testing.T) { FILE: app/downloader/surfer/surf.go type Surf (line 36) | type Surf struct method Download (line 52) | func (s *Surf) Download(req Request) (r result.Result[*http.Response]) { method buildClient (line 103) | func (s *Surf) buildClient(param *Param) *http.Client { method httpRequest (line 158) | func (s *Surf) httpRequest(param *Param) (resp *http.Response, err err... function New (line 41) | func New(jar ...*cookiejar.Jar) Surfer { type DnsCache (line 83) | type DnsCache struct method Reg (line 88) | func (d *DnsCache) Reg(addr, ipPort string) { method Del (line 93) | func (d *DnsCache) Del(addr string) { method Query (line 98) | func (d *DnsCache) Query(addr string) option.Option[string] { FILE: app/downloader/surfer/surf_stub_test.go function TestDownloadPhantomJsIDStub (line 7) | func TestDownloadPhantomJsIDStub(t *testing.T) { function TestDownloadChromeIDStub (line 15) | func TestDownloadChromeIDStub(t *testing.T) { function TestDestroyJsFilesStub (line 23) | func TestDestroyJsFilesStub(t *testing.T) { FILE: app/downloader/surfer/surf_test.go function TestNew (line 17) | func TestNew(t *testing.T) { function TestSurfDownload (line 33) | func TestSurfDownload(t *testing.T) { function TestSurfDownloadGzip (line 78) | func TestSurfDownloadGzip(t *testing.T) { function TestSurfDownloadPOST (line 109) | func TestSurfDownloadPOST(t *testing.T) { function TestSurfDownloadPOSTM (line 142) | func TestSurfDownloadPOSTM(t *testing.T) { function TestSurfDownloadRetry (line 176) | func TestSurfDownloadRetry(t *testing.T) { function TestSurfDownloadWithCookie (line 220) | func TestSurfDownloadWithCookie(t *testing.T) { function TestSurfDownloadHTTPS (line 245) | func TestSurfDownloadHTTPS(t *testing.T) { function TestSurfDownloadDeflate (line 273) | func TestSurfDownloadDeflate(t *testing.T) { function TestSurfDownloadZlib (line 307) | func TestSurfDownloadZlib(t *testing.T) { function TestDownloadSurfID (line 341) | func TestDownloadSurfID(t *testing.T) { function TestDestroyJsFiles (line 369) | func TestDestroyJsFiles(t *testing.T) { function TestDownloadUnknownID (line 373) | func TestDownloadUnknownID(t *testing.T) { type mockRequest (line 381) | type mockRequest struct method GetURL (line 385) | func (m *mockRequest) GetURL() string { return "http://... method GetMethod (line 386) | func (m *mockRequest) GetMethod() string { return "GET" } method GetPostData (line 387) | func (m *mockRequest) GetPostData() string { return "" } method GetHeader (line 388) | func (m *mockRequest) GetHeader() http.Header { return nil } method GetEnableCookie (line 389) | func (m *mockRequest) GetEnableCookie() bool { return false } method GetDialTimeout (line 390) | func (m *mockRequest) GetDialTimeout() time.Duration { return time.Sec... method GetConnTimeout (line 391) | func (m *mockRequest) GetConnTimeout() time.Duration { return time.Sec... method GetTryTimes (line 392) | func (m *mockRequest) GetTryTimes() int { return 1 } method GetRetryPause (line 393) | func (m *mockRequest) GetRetryPause() time.Duration { return time.Mil... method GetProxy (line 394) | func (m *mockRequest) GetProxy() string { return "" } method GetRedirectTimes (line 395) | func (m *mockRequest) GetRedirectTimes() int { return 0 } method GetDownloaderID (line 396) | func (m *mockRequest) GetDownloaderID() int { return m.downlo... function TestDnsCache (line 398) | func TestDnsCache(t *testing.T) { FILE: app/downloader/surfer/surfer.go function Download (line 42) | func Download(req Request) result.Result[*http.Response] { function DestroyJsFiles (line 58) | func DestroyJsFiles() { type Surfer (line 65) | type Surfer interface FILE: app/downloader/surfer/util.go function AutoToUTF8 (line 32) | func AutoToUTF8(resp *http.Response) error { function BodyBytes (line 44) | func BodyBytes(resp *http.Response) ([]byte, error) { function URLEncode (line 51) | func URLEncode(urlStr string) (*url.URL, error) { function GetWDPath (line 58) | func GetWDPath() string { function IsDirExists (line 67) | func IsDirExists(path string) bool { function IsFileExists (line 77) | func IsFileExists(path string) bool { function WalkDir (line 87) | func WalkDir(targpath string, suffixes ...string) (dirlist []string) { function ExtractHomepage (line 120) | func ExtractHomepage(rawURL string) string { type Body (line 134) | type Body struct method Read (line 139) | func (b *Body) Read(p []byte) (int, error) { FILE: app/downloader/surfer/util_test.go function TestURLEncode (line 14) | func TestURLEncode(t *testing.T) { function TestBodyBytes (line 36) | func TestBodyBytes(t *testing.T) { function TestAutoToUTF8 (line 50) | func TestAutoToUTF8(t *testing.T) { function TestBodyRead (line 70) | func TestBodyRead(t *testing.T) { function TestIsDirExists (line 86) | func TestIsDirExists(t *testing.T) { function TestIsFileExists (line 103) | func TestIsFileExists(t *testing.T) { function TestWalkDir (line 120) | func TestWalkDir(t *testing.T) { FILE: app/pipeline/collector/collector.go type Collector (line 18) | type Collector struct method CollectData (line 49) | func (c *Collector) CollectData(dataCell data.DataCell) (r result.Void... method CollectFile (line 61) | func (c *Collector) CollectFile(fileCell data.FileCell) (r result.Void... method Stop (line 73) | func (c *Collector) Stop() { method Start (line 93) | func (c *Collector) Start() { method resetDataBuf (line 142) | func (c *Collector) resetDataBuf() { method dataSum (line 150) | func (c *Collector) dataSum() uint64 { method addDataSum (line 157) | func (c *Collector) addDataSum(add uint64) { method fileSum (line 165) | func (c *Collector) fileSum() uint64 { method addFileSum (line 172) | func (c *Collector) addFileSum(add uint64) { method Report (line 180) | func (c *Collector) Report() { function NewCollector (line 34) | func NewCollector(sp *spider.Spider, outType string, batchCap int) *Coll... FILE: app/pipeline/collector/collector_test.go function TestNewCollector (line 16) | func TestNewCollector(t *testing.T) { function TestCollector_CollectData (line 46) | func TestCollector_CollectData(t *testing.T) { function TestCollector_CollectFile (line 62) | func TestCollector_CollectFile(t *testing.T) { function TestCollector_Stop (line 78) | func TestCollector_Stop(t *testing.T) { function TestCollector_OutputData_EmptyBuf (line 88) | func TestCollector_OutputData_EmptyBuf(t *testing.T) { function TestCollector_OutputData_PanicRecovery (line 97) | func TestCollector_OutputData_PanicRecovery(t *testing.T) { function TestCollector_OutputData_ErrorResult (line 115) | func TestCollector_OutputData_ErrorResult(t *testing.T) { function TestCollector_OutputCSV (line 133) | func TestCollector_OutputCSV(t *testing.T) { function TestCollector_OutputCSV_NonStringData (line 194) | func TestCollector_OutputCSV_NonStringData(t *testing.T) { function TestCollector_OutputCSV_NotDefaultField (line 232) | func TestCollector_OutputCSV_NotDefaultField(t *testing.T) { function TestCollector_OutputExcel (line 271) | func TestCollector_OutputExcel(t *testing.T) { function TestCollector_OutputFile (line 316) | func TestCollector_OutputFile(t *testing.T) { function readFile (line 354) | func readFile(path string) (string, error) { function TestCollector_OutputFile_MkdirFail (line 362) | func TestCollector_OutputFile_MkdirFail(t *testing.T) { FILE: app/pipeline/collector/data/data.go constant FieldRuleName (line 9) | FieldRuleName = "RuleName" constant FieldURL (line 10) | FieldURL = "Url" constant FieldParentURL (line 11) | FieldParentURL = "ParentUrl" constant FieldDownloadTime (line 12) | FieldDownloadTime = "DownloadTime" type DataCell (line 17) | type DataCell type FileCell (line 20) | type FileCell function GetDataCell (line 37) | func GetDataCell(ruleName string, data map[string]interface{}, url strin... function GetFileCell (line 48) | func GetFileCell(ruleName, name string, bytes []byte) FileCell { function PutDataCell (line 57) | func PutDataCell(cell DataCell) { function PutFileCell (line 67) | func PutFileCell(cell FileCell) { FILE: app/pipeline/collector/data/data_test.go function TestGetDataCell (line 7) | func TestGetDataCell(t *testing.T) { function TestGetFileCell (line 29) | func TestGetFileCell(t *testing.T) { function TestPutDataCell (line 44) | func TestPutDataCell(t *testing.T) { function TestPutFileCell (line 55) | func TestPutFileCell(t *testing.T) { function TestPoolReuseDataCell (line 69) | func TestPoolReuseDataCell(t *testing.T) { FILE: app/pipeline/collector/output_beanstalkd.go function init (line 18) | func init() { FILE: app/pipeline/collector/output_beanstalkd_stub.go function init (line 9) | func init() { FILE: app/pipeline/collector/output_csv.go function init (line 16) | func init() { FILE: app/pipeline/collector/output_data.go type Refresher (line 10) | type Refresher interface method outputData (line 26) | func (c *Collector) outputData() { function Register (line 60) | func Register(outType string, outFunc func(col *Collector) result.VoidRe... function RegisterRefresher (line 65) | func RegisterRefresher(outType string, r Refresher) { function RefreshBackend (line 70) | func RefreshBackend(outType string) { FILE: app/pipeline/collector/output_data_test.go function TestRegister (line 9) | func TestRegister(t *testing.T) { function TestRegisterRefresher (line 16) | func TestRegisterRefresher(t *testing.T) { function TestRefreshBackend_Unregistered (line 25) | func TestRefreshBackend_Unregistered(t *testing.T) { type testRefresher (line 29) | type testRefresher struct method Refresh (line 33) | func (t *testRefresher) Refresh() { FILE: app/pipeline/collector/output_excel.go function init (line 17) | func init() { FILE: app/pipeline/collector/output_file.go method outputFile (line 20) | func (c *Collector) outputFile(file data.FileCell) { FILE: app/pipeline/collector/output_kafka.go function init (line 17) | func init() { FILE: app/pipeline/collector/output_kafka_stub.go function init (line 9) | func init() { FILE: app/pipeline/collector/output_mgo.go function init (line 18) | func init() { FILE: app/pipeline/collector/output_mgo_stub.go function init (line 9) | func init() { FILE: app/pipeline/collector/output_mysql.go function init (line 15) | func init() { FILE: app/pipeline/collector/output_mysql_stub.go function init (line 9) | func init() { FILE: app/pipeline/collector/output_util.go method namespace (line 8) | func (c *Collector) namespace() string { method subNamespace (line 19) | func (c *Collector) subNamespace(dataCell map[string]interface{}) string { function joinNamespaces (line 32) | func joinNamespaces(namespace, subNamespace string) string { FILE: app/pipeline/collector/output_util_test.go function TestJoinNamespaces (line 10) | func TestJoinNamespaces(t *testing.T) { function TestCollector_Namespace (line 30) | func TestCollector_Namespace(t *testing.T) { function TestCollector_SubNamespace (line 71) | func TestCollector_SubNamespace(t *testing.T) { FILE: app/pipeline/output.go function init (line 15) | func init() { type refresherFunc (line 27) | type refresherFunc method Refresh (line 29) | func (f refresherFunc) Refresh() { f() } function RegisterOutput (line 32) | func RegisterOutput(name string, fn func(*collector.Collector) result.Vo... function GetOutputLib (line 39) | func GetOutputLib() []string { function RefreshOutput (line 44) | func RefreshOutput() { FILE: app/pipeline/pipeline.go type Pipeline (line 12) | type Pipeline interface function New (line 20) | func New(sp *spider.Spider, outType string, batchCap int) Pipeline { FILE: app/pipeline/pipeline_test.go function TestNew (line 13) | func TestNew(t *testing.T) { function TestGetOutputLib (line 50) | func TestGetOutputLib(t *testing.T) { function TestRegisterOutput (line 62) | func TestRegisterOutput(t *testing.T) { function TestRefreshOutput (line 86) | func TestRefreshOutput(t *testing.T) { function TestRefresherFunc (line 96) | func TestRefresherFunc(t *testing.T) { function TestPipeline_StartStopCollect (line 105) | func TestPipeline_StartStopCollect(t *testing.T) { FILE: app/scheduler/matrix.go type Matrix (line 18) | type Matrix struct method Push (line 51) | func (m *Matrix) Push(req *request.Request) { method Pull (line 101) | func (m *Matrix) Pull() (req *request.Request) { method Use (line 127) | func (m *Matrix) Use() { method Free (line 138) | func (m *Matrix) Free() { method DoHistory (line 144) | func (m *Matrix) DoHistory(req *request.Request, ok bool) bool { method CanStop (line 172) | func (m *Matrix) CanStop() bool { method TryFlushSuccess (line 207) | func (m *Matrix) TryFlushSuccess() { method TryFlushFailure (line 214) | func (m *Matrix) TryFlushFailure() { method Wait (line 221) | func (m *Matrix) Wait() { method Len (line 231) | func (m *Matrix) Len() int { method hasHistory (line 241) | func (m *Matrix) hasHistory(reqUnique string) bool { method insertTempHistory (line 251) | func (m *Matrix) insertTempHistory(reqUnique string) { method setFailures (line 257) | func (m *Matrix) setFailures(reqs map[string]*request.Request) { function newMatrix (line 32) | func newMatrix(spiderName, spiderSubName string, maxPage int64) *Matrix { FILE: app/scheduler/scheduler.go type scheduler (line 14) | type scheduler struct method avgRes (line 93) | func (sched *scheduler) avgRes() int32 { method checkStatus (line 101) | func (sched *scheduler) checkStatus(s int) bool { function Init (line 31) | func Init(threadNum int, proxyMinute int64) { function ReloadProxyLib (line 53) | func ReloadProxyLib() { function AddMatrix (line 58) | func AddMatrix(spiderName, spiderSubName string, maxPage int64) *Matrix { function PauseRecover (line 67) | func PauseRecover() { function Stop (line 79) | func Stop() { FILE: app/scheduler/scheduler_test.go function makeReq (line 11) | func makeReq(url, rule string) *request.Request { function TestInit (line 17) | func TestInit(t *testing.T) { function TestAddMatrix (line 33) | func TestAddMatrix(t *testing.T) { function TestPauseRecover (line 56) | func TestPauseRecover(t *testing.T) { function TestReloadProxyLib (line 62) | func TestReloadProxyLib(t *testing.T) { function TestMatrix_PushPull_Len (line 66) | func TestMatrix_PushPull_Len(t *testing.T) { function TestMatrix_Push_ignored_when_maxPage_non_negative (line 103) | func TestMatrix_Push_ignored_when_maxPage_non_negative(t *testing.T) { function TestMatrix_Pull_empty_returns_nil (line 113) | func TestMatrix_Pull_empty_returns_nil(t *testing.T) { function TestMatrix_Pull_paused_returns_nil (line 121) | func TestMatrix_Pull_paused_returns_nil(t *testing.T) { function TestMatrix_Use_Free (line 133) | func TestMatrix_Use_Free(t *testing.T) { function TestMatrix_DoHistory (line 140) | func TestMatrix_DoHistory(t *testing.T) { function TestMatrix_DoHistory_reloadable (line 168) | func TestMatrix_DoHistory_reloadable(t *testing.T) { function TestMatrix_CanStop (line 187) | func TestMatrix_CanStop(t *testing.T) { function TestMatrix_CanStop_after_Stop (line 218) | func TestMatrix_CanStop_after_Stop(t *testing.T) { function TestMatrix_TryFlushSuccess_Failure (line 230) | func TestMatrix_TryFlushSuccess_Failure(t *testing.T) { function TestMatrix_Wait (line 245) | func TestMatrix_Wait(t *testing.T) { function TestMatrix_Push_duplicate_skipped (line 251) | func TestMatrix_Push_duplicate_skipped(t *testing.T) { function TestMatrix_Pull_priority (line 262) | func TestMatrix_Pull_priority(t *testing.T) { function TestMatrix_Pull_request_with_proxy_passthrough (line 280) | func TestMatrix_Pull_request_with_proxy_passthrough(t *testing.T) { FILE: app/spider/common/common.go function CleanHtml (line 19) | func CleanHtml(str string, depth int) string { function ExtractArticle (line 45) | func ExtractArticle(html string) string { function Deprive (line 80) | func Deprive(s string) string { function Deprive2 (line 89) | func Deprive2(s string) string { function Floor (line 101) | func Floor(f float64, n int) float64 { function SplitCookies (line 107) | func SplitCookies(cookieStr string) (cookies []*http.Cookie) { function DecodeString (line 121) | func DecodeString(src, charset string) string { function EncodeString (line 125) | func EncodeString(src, charset string) string { function ConvertToString (line 129) | func ConvertToString(src string, srcCode string, tagCode string) string { function GBKToUTF8 (line 138) | func GBKToUTF8(src string) string { function UnicodeToUTF8 (line 143) | func UnicodeToUTF8(str string) string { function Unicode16ToUTF8 (line 157) | func Unicode16ToUTF8(str string) string { function MakeUrl (line 178) | func MakeUrl(path string, schemeAndHost ...string) (string, bool) { function Pinger (line 198) | func Pinger(address string, timeoutSecond int) result.VoidResult { function Ping (line 202) | func Ping(address string, timeoutSecond int) result.Result[ping.PingResu... function ProcessHtml (line 210) | func ProcessHtml(html string) string { function DepriveBreak (line 216) | func DepriveBreak(s string) string { function DepriveMutiBreak (line 227) | func DepriveMutiBreak(s string) string { function HrefSub (line 234) | func HrefSub(src string, sub string) string { function GetHref (line 248) | func GetHref(baseURL string, url string, href string, mustBase bool) str... FILE: app/spider/common/common_test.go function TestCleanHtml (line 7) | func TestCleanHtml(t *testing.T) { function TestDeprive (line 30) | func TestDeprive(t *testing.T) { function TestDeprive2 (line 45) | func TestDeprive2(t *testing.T) { function TestFloor (line 62) | func TestFloor(t *testing.T) { function TestSplitCookies (line 79) | func TestSplitCookies(t *testing.T) { function TestDecodeString (line 106) | func TestDecodeString(t *testing.T) { function TestEncodeString (line 122) | func TestEncodeString(t *testing.T) { function TestConvertToString (line 138) | func TestConvertToString(t *testing.T) { function TestGBKToUTF8 (line 155) | func TestGBKToUTF8(t *testing.T) { function TestUnicodeToUTF8 (line 170) | func TestUnicodeToUTF8(t *testing.T) { function TestUnicode16ToUTF8 (line 186) | func TestUnicode16ToUTF8(t *testing.T) { function TestMakeUrl (line 203) | func TestMakeUrl(t *testing.T) { function TestProcessHtml (line 224) | func TestProcessHtml(t *testing.T) { function TestDepriveBreak (line 240) | func TestDepriveBreak(t *testing.T) { function TestDepriveMutiBreak (line 255) | func TestDepriveMutiBreak(t *testing.T) { function TestHrefSub (line 270) | func TestHrefSub(t *testing.T) { function TestGetHref (line 287) | func TestGetHref(t *testing.T) { function TestExtractArticle (line 317) | func TestExtractArticle(t *testing.T) { function TestPinger (line 330) | func TestPinger(t *testing.T) { function TestPing (line 337) | func TestPing(t *testing.T) { FILE: app/spider/common/form.go type Form (line 14) | type Form struct method Method (line 50) | func (f *Form) Method() string { method Action (line 56) | func (f *Form) Action() string { method Input (line 61) | func (f *Form) Input(name, value string) *Form { method Inputs (line 69) | func (f *Form) Inputs(kv map[string]string) *Form { method Submit (line 81) | func (f *Form) Submit() bool { method Click (line 91) | func (f *Form) Click(button string) bool { method Dom (line 99) | func (f *Form) Dom() *goquery.Selection { method send (line 104) | func (f *Form) send(buttonName, buttonValue string) bool { function NewForm (line 25) | func NewForm(ctx *spider.Context, rule string, u string, form *goquery.S... function serializeForm (line 145) | func serializeForm(sel *goquery.Selection) (url.Values, url.Values) { function formAttributes (line 171) | func formAttributes(u string, form *goquery.Selection, schemeAndHost ...... FILE: app/spider/common/form_test.go function TestNewForm (line 11) | func TestNewForm(t *testing.T) { function TestNewForm_Post (line 51) | func TestNewForm_Post(t *testing.T) { function TestNewForm_Multipart (line 74) | func TestNewForm_Multipart(t *testing.T) { function TestNewForm_NoSchemeAndHost (line 94) | func TestNewForm_NoSchemeAndHost(t *testing.T) { FILE: app/spider/context.go type Context (line 25) | type Context struct method SetResponse (line 77) | func (ctx *Context) SetResponse(resp *http.Response) *Context { method SetError (line 83) | func (ctx *Context) SetError(err error) { method AddQueue (line 104) | func (ctx *Context) AddQueue(req *request.Request) *Context { method JsAddQueue (line 141) | func (ctx *Context) JsAddQueue(jreq map[string]interface{}) *Context { method Output (line 214) | func (ctx *Context) Output(item interface{}, ruleName ...string) { method FileOutput (line 247) | func (ctx *Context) FileOutput(nameOrExt ...string) { method CreateItem (line 288) | func (ctx *Context) CreateItem(item map[int]interface{}, ruleName ...s... method SetTemp (line 304) | func (ctx *Context) SetTemp(key string, value interface{}) *Context { method SetURL (line 309) | func (ctx *Context) SetURL(url string) *Context { method SetReferer (line 314) | func (ctx *Context) SetReferer(referer string) *Context { method UpsertItemField (line 322) | func (ctx *Context) UpsertItemField(field string, ruleName ...string) ... method Aid (line 333) | func (ctx *Context) Aid(aid map[string]interface{}, ruleName ...string... method Parse (line 356) | func (ctx *Context) Parse(ruleName ...string) *Context { method SetKeyin (line 378) | func (ctx *Context) SetKeyin(keyin string) *Context { method SetLimit (line 384) | func (ctx *Context) SetLimit(max int) *Context { method SetPausetime (line 391) | func (ctx *Context) SetPausetime(pause int64, runtime ...bool) *Context { method SetTimer (line 399) | func (ctx *Context) SetTimer(id string, tol time.Duration, bell *Bell)... method RunTimer (line 404) | func (ctx *Context) RunTimer(id string) bool { method ResetText (line 409) | func (ctx *Context) ResetText(body string) *Context { method GetError (line 420) | func (ctx *Context) GetError() error { method Log (line 428) | func (*Context) Log() logs.Logs { method GetSpider (line 433) | func (ctx *Context) GetSpider() *Spider { method GetResponse (line 438) | func (ctx *Context) GetResponse() *http.Response { method GetStatusCode (line 443) | func (ctx *Context) GetStatusCode() int { method GetRequest (line 451) | func (ctx *Context) GetRequest() *request.Request { method CopyRequest (line 456) | func (ctx *Context) CopyRequest() *request.Request { method GetItemFields (line 461) | func (ctx *Context) GetItemFields(ruleName ...string) []string { method GetItemField (line 472) | func (ctx *Context) GetItemField(index int, ruleName ...string) (field... method GetItemFieldIndex (line 483) | func (ctx *Context) GetItemFieldIndex(field string, ruleName ...string... method PullItems (line 493) | func (ctx *Context) PullItems() (ds []data.DataCell) { method PullFiles (line 502) | func (ctx *Context) PullFiles() (fs []data.FileCell) { method GetKeyin (line 511) | func (ctx *Context) GetKeyin() string { method GetLimit (line 516) | func (ctx *Context) GetLimit() int { method GetName (line 521) | func (ctx *Context) GetName() string { method GetRules (line 526) | func (ctx *Context) GetRules() map[string]*Rule { method GetRule (line 531) | func (ctx *Context) GetRule(ruleName string) *Rule { method GetRuleName (line 536) | func (ctx *Context) GetRuleName() string { method GetTemp (line 542) | func (ctx *Context) GetTemp(key string, defaultValue interface{}) inte... method GetTemps (line 547) | func (ctx *Context) GetTemps() request.Temp { method CopyTemps (line 552) | func (ctx *Context) CopyTemps() request.Temp { method GetURL (line 561) | func (ctx *Context) GetURL() string { method GetMethod (line 566) | func (ctx *Context) GetMethod() string { method GetHost (line 571) | func (ctx *Context) GetHost() string { method GetHeader (line 579) | func (ctx *Context) GetHeader() http.Header { method GetRequestHeader (line 587) | func (ctx *Context) GetRequestHeader() http.Header { method GetReferer (line 595) | func (ctx *Context) GetReferer() string { method GetCookie (line 603) | func (ctx *Context) GetCookie() string { method GetDom (line 612) | func (ctx *Context) GetDom() *goquery.Document { method GetText (line 631) | func (ctx *Context) GetText() string { method getRule (line 649) | func (ctx *Context) getRule(ruleName ...string) (name string, rule *Ru... method initDom (line 663) | func (ctx *Context) initDom() (*goquery.Document, error) { method initText (line 678) | func (ctx *Context) initText() error { function GetContext (line 51) | func GetContext(sp *Spider, req *request.Request) *Context { function PutContext (line 59) | func PutContext(ctx *Context) { function jsToInt64 (line 128) | func jsToInt64(v interface{}) (int64, bool) { function detectCharset (line 703) | func detectCharset(responseContentType, requestContentType string) string { function isUTF8 (line 714) | func isUTF8(charset string) bool { function convertEncoding (line 723) | func convertEncoding(body []byte, charsetLabel string) ([]byte, error) { FILE: app/spider/parsejs.go function evalScript (line 27) | func evalScript(vm *otto.Otto, script string) (r result.Result[otto.Valu... type SpiderModle (line 36) | type SpiderModle struct type RuleModle (line 50) | type RuleModle struct function RegisterDynamicSpiders (line 60) | func RegisterDynamicSpiders() { function doRegisterDynamicSpiders (line 64) | func doRegisterDynamicSpiders() { function wrapScriptCDATA (line 154) | func wrapScriptCDATA(data []byte) []byte { function getSpiderModles (line 173) | func getSpiderModles() (ms []*SpiderModle) { FILE: app/spider/species.go type SpiderSpecies (line 12) | type SpiderSpecies struct method Add (line 25) | func (ss *SpiderSpecies) Add(sp *Spider) *Spider { method Get (line 42) | func (ss *SpiderSpecies) Get() []*Spider { method GetByNameOpt (line 62) | func (ss *SpiderSpecies) GetByNameOpt(name string) option.Option[*Spid... FILE: app/spider/species_test.go function TestSpiderSpecies_Add (line 7) | func TestSpiderSpecies_Add(t *testing.T) { function TestSpiderSpecies_Get (line 34) | func TestSpiderSpecies_Get(t *testing.T) { function TestSpiderSpecies_GetByNameOpt (line 53) | func TestSpiderSpecies_GetByNameOpt(t *testing.T) { function TestSpider_GetName (line 75) | func TestSpider_GetName(t *testing.T) { function TestSpider_GetSubName (line 91) | func TestSpider_GetSubName(t *testing.T) { function TestSpider_GetRule (line 102) | func TestSpider_GetRule(t *testing.T) { function TestSpider_MustGetRule (line 115) | func TestSpider_MustGetRule(t *testing.T) { function TestSpider_GetRules (line 130) | func TestSpider_GetRules(t *testing.T) { function TestSpider_GetItemFields (line 139) | func TestSpider_GetItemFields(t *testing.T) { function TestSpider_GetItemField (line 148) | func TestSpider_GetItemField(t *testing.T) { function TestSpider_GetItemFieldIndex (line 167) | func TestSpider_GetItemFieldIndex(t *testing.T) { function TestSpider_UpsertItemField (line 186) | func TestSpider_UpsertItemField(t *testing.T) { function TestSpider_GetID_SetID (line 200) | func TestSpider_GetID_SetID(t *testing.T) { function TestSpider_GetKeyin_SetKeyin (line 208) | func TestSpider_GetKeyin_SetKeyin(t *testing.T) { function TestSpider_GetLimit_SetLimit (line 216) | func TestSpider_GetLimit_SetLimit(t *testing.T) { function TestSpider_GetEnableCookie (line 224) | func TestSpider_GetEnableCookie(t *testing.T) { function TestSpider_GetDescription (line 231) | func TestSpider_GetDescription(t *testing.T) { function TestSpider_SetPausetime (line 238) | func TestSpider_SetPausetime(t *testing.T) { function TestSpider_OutDefaultField (line 254) | func TestSpider_OutDefaultField(t *testing.T) { function TestSpider_Copy (line 265) | func TestSpider_Copy(t *testing.T) { FILE: app/spider/spider.go constant KEYIN (line 19) | KEYIN = util.USE_KEYIN constant LIMIT (line 20) | LIMIT = math.MaxInt64 constant FORCED_STOP (line 21) | FORCED_STOP = "-- Forced stop of Spider --" type Spider (line 26) | type Spider struct method Register (line 62) | func (sp *Spider) Register() *Spider { method GetItemFields (line 68) | func (sp *Spider) GetItemFields(rule *Rule) []string { method GetItemField (line 73) | func (sp *Spider) GetItemField(rule *Rule, index int) (field string) { method GetItemFieldIndex (line 81) | func (sp *Spider) GetItemFieldIndex(rule *Rule, field string) (index i... method UpsertItemField (line 92) | func (sp *Spider) UpsertItemField(rule *Rule, field string) (index int) { method GetName (line 103) | func (sp *Spider) GetName() string { method GetSubName (line 108) | func (sp *Spider) GetSubName() string { method GetRule (line 117) | func (sp *Spider) GetRule(ruleName string) *Rule { method MustGetRule (line 126) | func (sp *Spider) MustGetRule(ruleName string) *Rule { method GetRules (line 135) | func (sp *Spider) GetRules() map[string]*Rule { method GetDescription (line 140) | func (sp *Spider) GetDescription() string { method GetID (line 145) | func (sp *Spider) GetID() int { method SetID (line 150) | func (sp *Spider) SetID(id int) { method GetKeyin (line 155) | func (sp *Spider) GetKeyin() string { method SetKeyin (line 160) | func (sp *Spider) SetKeyin(keyword string) { method GetLimit (line 166) | func (sp *Spider) GetLimit() int64 { method SetLimit (line 171) | func (sp *Spider) SetLimit(max int64) { method GetEnableCookie (line 176) | func (sp *Spider) GetEnableCookie() bool { method SetPausetime (line 181) | func (sp *Spider) SetPausetime(pause int64, runtime ...bool) { method SetTimer (line 189) | func (sp *Spider) SetTimer(id string, tol time.Duration, bell *Bell) b... method RunTimer (line 197) | func (sp *Spider) RunTimer(id string) bool { method Copy (line 205) | func (sp *Spider) Copy() *Spider { method ReqmatrixInit (line 241) | func (sp *Spider) ReqmatrixInit() *Spider { method DoHistory (line 252) | func (sp *Spider) DoHistory(req *request.Request, ok bool) bool { method RequestPush (line 257) | func (sp *Spider) RequestPush(req *request.Request) { method RequestPull (line 262) | func (sp *Spider) RequestPull() *request.Request { method RequestUse (line 266) | func (sp *Spider) RequestUse() { method RequestFree (line 270) | func (sp *Spider) RequestFree() { method RequestLen (line 274) | func (sp *Spider) RequestLen() int { method TryFlushSuccess (line 278) | func (sp *Spider) TryFlushSuccess() { method TryFlushFailure (line 282) | func (sp *Spider) TryFlushFailure() { method Start (line 287) | func (sp *Spider) Start() { method Stop (line 300) | func (sp *Spider) Stop() { method CanStop (line 314) | func (sp *Spider) CanStop() bool { method IsStopping (line 321) | func (sp *Spider) IsStopping() bool { method tryStop (line 328) | func (sp *Spider) tryStop() error { method Defer (line 336) | func (sp *Spider) Defer() { method OutDefaultField (line 346) | func (sp *Spider) OutDefaultField() bool { type RuleTree (line 49) | type RuleTree struct type Rule (line 54) | type Rule struct FILE: app/spider/timer.go type Timer (line 11) | type Timer struct method sleep (line 24) | func (t *Timer) sleep(id string) bool { method set (line 51) | func (t *Timer) set(id string, tol time.Duration, bell *Bell) bool { method drop (line 69) | func (t *Timer) drop() { function newTimer (line 17) | func newTimer() *Timer { type Clock (line 81) | type Clock struct method sleep (line 127) | func (c *Clock) sleep() { method wake (line 137) | func (c *Clock) wake() { method duration (line 141) | func (c *Clock) duration() time.Duration { type Bell (line 89) | type Bell struct constant A (line 97) | A = iota constant T (line 98) | T function newClock (line 103) | func newClock(id string, tol time.Duration, bell *Bell) (*Clock, bool) { function newT (line 159) | func newT() *time.Timer { FILE: app/spider/timer_test.go function TestTimer1 (line 8) | func TestTimer1(t *testing.T) { function TestTimer2 (line 17) | func TestTimer2(t *testing.T) { FILE: cmd/cmd_test.go function TestFlag (line 8) | func TestFlag(t *testing.T) { FILE: cmd/pholcus-cmd.go function Flag (line 25) | func Flag() { function Run (line 47) | func Run() { function run (line 68) | func run() { function parseInput (line 89) | func parseInput() { FILE: common/beanstalkd/beanstalkd.go type BeanstalkdClient (line 15) | type BeanstalkdClient struct method Close (line 44) | func (srv *BeanstalkdClient) Close() { method Send (line 51) | func (srv *BeanstalkdClient) Send(content url.Values) result.VoidResult { function New (line 21) | func New() result.Result[*BeanstalkdClient] { function NewFromConfig (line 26) | func NewFromConfig(cfg config.BeanstalkdConfig) result.Result[*Beanstalk... FILE: common/beanstalkd/beanstalkd_test.go function TestNewFromConfig_EmptyHost (line 12) | func TestNewFromConfig_EmptyHost(t *testing.T) { function TestNewFromConfig_EmptyTube (line 22) | func TestNewFromConfig_EmptyTube(t *testing.T) { function TestNewFromConfig_ConnectionError (line 32) | func TestNewFromConfig_ConnectionError(t *testing.T) { function TestClose_NilConn (line 42) | func TestClose_NilConn(t *testing.T) { function TestSend_NilConn (line 47) | func TestSend_NilConn(t *testing.T) { function TestSend_EmptyValues (line 55) | func TestSend_EmptyValues(t *testing.T) { function TestClose_WithConn (line 63) | func TestClose_WithConn(t *testing.T) { function TestSend_PutError (line 71) | func TestSend_PutError(t *testing.T) { function TestNew (line 83) | func TestNew(t *testing.T) { FILE: common/bytes/bytes.go type Bytes (line 11) | type Bytes struct method Format (line 37) | func (*Bytes) Format(b uint64) string { method Parse (line 66) | func (*Bytes) Parse(value string) (i uint64, err error) { constant B (line 16) | B = 1 << (10 * iota) constant KB (line 17) | KB constant MB (line 18) | MB constant GB (line 19) | GB constant TB (line 20) | TB constant PB (line 21) | PB constant EB (line 22) | EB function New (line 31) | func New() *Bytes { function Format (line 97) | func Format(b uint64) string { function Parse (line 102) | func Parse(val string) (uint64, error) { FILE: common/bytes/bytes_test.go function TestFormat (line 7) | func TestFormat(t *testing.T) { function TestParse (line 36) | func TestParse(t *testing.T) { function TestConstants (line 72) | func TestConstants(t *testing.T) { FILE: common/closer/closer.go type LogFunc (line 11) | type LogFunc function LogClose (line 15) | func LogClose(c io.Closer, logf LogFunc) { FILE: common/closer/closer_test.go type mockCloser (line 8) | type mockCloser struct method Close (line 12) | func (m *mockCloser) Close() error { return m.err } function TestLogClose_NoError (line 14) | func TestLogClose_NoError(t *testing.T) { function TestLogClose_WithError (line 22) | func TestLogClose_WithError(t *testing.T) { FILE: common/gc/gc.go constant GC_SIZE (line 12) | GC_SIZE = 50 << 20 function ManualGC (line 22) | func ManualGC() { FILE: common/gc/gc_test.go function TestGCSizeConstant (line 7) | func TestGCSizeConstant(t *testing.T) { function TestManualGCDoesNotPanic (line 14) | func TestManualGCDoesNotPanic(t *testing.T) { FILE: common/goquery/array.go method First (line 10) | func (s *Selection) First() *Selection { method Last (line 17) | func (s *Selection) Last() *Selection { method Eq (line 25) | func (s *Selection) Eq(index int) *Selection { method Slice (line 39) | func (s *Selection) Slice(start, end int) *Selection { method Get (line 52) | func (s *Selection) Get(index int) *html.Node { method Index (line 61) | func (s *Selection) Index() int { method IndexSelector (line 71) | func (s *Selection) IndexSelector(selector string) int { method IndexMatcher (line 82) | func (s *Selection) IndexMatcher(m Matcher) int { method IndexOfNode (line 92) | func (s *Selection) IndexOfNode(node *html.Node) int { method IndexOfSelection (line 98) | func (s *Selection) IndexOfSelection(sel *Selection) int { FILE: common/goquery/array_test.go function TestFirst (line 7) | func TestFirst(t *testing.T) { function TestFirstEmpty (line 12) | func TestFirstEmpty(t *testing.T) { function TestFirstInvalid (line 17) | func TestFirstInvalid(t *testing.T) { function TestFirstRollback (line 22) | func TestFirstRollback(t *testing.T) { function TestLast (line 28) | func TestLast(t *testing.T) { function TestLastEmpty (line 39) | func TestLastEmpty(t *testing.T) { function TestLastInvalid (line 44) | func TestLastInvalid(t *testing.T) { function TestLastRollback (line 49) | func TestLastRollback(t *testing.T) { function TestEq (line 55) | func TestEq(t *testing.T) { function TestEqNegative (line 60) | func TestEqNegative(t *testing.T) { function TestEqEmpty (line 71) | func TestEqEmpty(t *testing.T) { function TestEqInvalid (line 76) | func TestEqInvalid(t *testing.T) { function TestEqInvalidPositive (line 81) | func TestEqInvalidPositive(t *testing.T) { function TestEqInvalidNegative (line 86) | func TestEqInvalidNegative(t *testing.T) { function TestEqRollback (line 91) | func TestEqRollback(t *testing.T) { function TestSlice (line 97) | func TestSlice(t *testing.T) { function TestSliceEmpty (line 103) | func TestSliceEmpty(t *testing.T) { function TestSliceInvalid (line 108) | func TestSliceInvalid(t *testing.T) { function TestSliceOutOfBounds (line 113) | func TestSliceOutOfBounds(t *testing.T) { function TestNegativeSliceStart (line 118) | func TestNegativeSliceStart(t *testing.T) { function TestNegativeSliceEnd (line 124) | func TestNegativeSliceEnd(t *testing.T) { function TestNegativeSliceBoth (line 131) | func TestNegativeSliceBoth(t *testing.T) { function TestNegativeSliceOutOfBounds (line 138) | func TestNegativeSliceOutOfBounds(t *testing.T) { function TestSliceRollback (line 143) | func TestSliceRollback(t *testing.T) { function TestGet (line 149) | func TestGet(t *testing.T) { function TestGetNegative (line 157) | func TestGetNegative(t *testing.T) { function TestGetInvalid (line 165) | func TestGetInvalid(t *testing.T) { function TestIndex (line 171) | func TestIndex(t *testing.T) { function TestIndexSelector (line 178) | func TestIndexSelector(t *testing.T) { function TestIndexSelectorInvalid (line 185) | func TestIndexSelectorInvalid(t *testing.T) { function TestIndexOfNode (line 192) | func TestIndexOfNode(t *testing.T) { function TestIndexOfNilNode (line 199) | func TestIndexOfNilNode(t *testing.T) { function TestIndexOfSelection (line 206) | func TestIndexOfSelection(t *testing.T) { FILE: common/goquery/bench_array_test.go function BenchmarkFirst (line 7) | func BenchmarkFirst(b *testing.B) { function BenchmarkLast (line 16) | func BenchmarkLast(b *testing.B) { function BenchmarkEq (line 25) | func BenchmarkEq(b *testing.B) { function BenchmarkSlice (line 38) | func BenchmarkSlice(b *testing.B) { function BenchmarkGet (line 51) | func BenchmarkGet(b *testing.B) { function BenchmarkIndex (line 64) | func BenchmarkIndex(b *testing.B) { function BenchmarkIndexSelector (line 78) | func BenchmarkIndexSelector(b *testing.B) { function BenchmarkIndexOfNode (line 92) | func BenchmarkIndexOfNode(b *testing.B) { function BenchmarkIndexOfSelection (line 108) | func BenchmarkIndexOfSelection(b *testing.B) { FILE: common/goquery/bench_example_test.go function BenchmarkMetalReviewExample (line 10) | func BenchmarkMetalReviewExample(b *testing.B) { FILE: common/goquery/bench_expand_test.go function BenchmarkAdd (line 7) | func BenchmarkAdd(b *testing.B) { function BenchmarkAddSelection (line 25) | func BenchmarkAddSelection(b *testing.B) { function BenchmarkAddNodes (line 44) | func BenchmarkAddNodes(b *testing.B) { function BenchmarkAddNodesBig (line 64) | func BenchmarkAddNodesBig(b *testing.B) { function BenchmarkAndSelf (line 88) | func BenchmarkAndSelf(b *testing.B) { FILE: common/goquery/bench_filter_test.go function BenchmarkFilter (line 7) | func BenchmarkFilter(b *testing.B) { function BenchmarkNot (line 25) | func BenchmarkNot(b *testing.B) { function BenchmarkFilterFunction (line 43) | func BenchmarkFilterFunction(b *testing.B) { function BenchmarkNotFunction (line 64) | func BenchmarkNotFunction(b *testing.B) { function BenchmarkFilterNodes (line 85) | func BenchmarkFilterNodes(b *testing.B) { function BenchmarkNotNodes (line 105) | func BenchmarkNotNodes(b *testing.B) { function BenchmarkFilterSelection (line 125) | func BenchmarkFilterSelection(b *testing.B) { function BenchmarkNotSelection (line 144) | func BenchmarkNotSelection(b *testing.B) { function BenchmarkHas (line 163) | func BenchmarkHas(b *testing.B) { function BenchmarkHasNodes (line 181) | func BenchmarkHasNodes(b *testing.B) { function BenchmarkHasSelection (line 201) | func BenchmarkHasSelection(b *testing.B) { function BenchmarkEnd (line 220) | func BenchmarkEnd(b *testing.B) { FILE: common/goquery/bench_iteration_test.go function BenchmarkEach (line 7) | func BenchmarkEach(b *testing.B) { function BenchmarkMap (line 27) | func BenchmarkMap(b *testing.B) { function BenchmarkEachWithBreak (line 48) | func BenchmarkEachWithBreak(b *testing.B) { FILE: common/goquery/bench_property_test.go function BenchmarkAttr (line 7) | func BenchmarkAttr(b *testing.B) { function BenchmarkText (line 21) | func BenchmarkText(b *testing.B) { function BenchmarkLength (line 30) | func BenchmarkLength(b *testing.B) { function BenchmarkHtml (line 44) | func BenchmarkHtml(b *testing.B) { FILE: common/goquery/bench_query_test.go function BenchmarkIs (line 7) | func BenchmarkIs(b *testing.B) { function BenchmarkIsPositional (line 21) | func BenchmarkIsPositional(b *testing.B) { function BenchmarkIsFunction (line 35) | func BenchmarkIsFunction(b *testing.B) { function BenchmarkIsSelection (line 52) | func BenchmarkIsSelection(b *testing.B) { function BenchmarkIsNodes (line 67) | func BenchmarkIsNodes(b *testing.B) { function BenchmarkHasClass (line 83) | func BenchmarkHasClass(b *testing.B) { function BenchmarkContains (line 97) | func BenchmarkContains(b *testing.B) { FILE: common/goquery/bench_traversal_test.go function BenchmarkFind (line 7) | func BenchmarkFind(b *testing.B) { function BenchmarkFindWithinSelection (line 23) | func BenchmarkFindWithinSelection(b *testing.B) { function BenchmarkFindSelection (line 41) | func BenchmarkFindSelection(b *testing.B) { function BenchmarkFindNodes (line 60) | func BenchmarkFindNodes(b *testing.B) { function BenchmarkContents (line 80) | func BenchmarkContents(b *testing.B) { function BenchmarkContentsFiltered (line 98) | func BenchmarkContentsFiltered(b *testing.B) { function BenchmarkChildren (line 116) | func BenchmarkChildren(b *testing.B) { function BenchmarkChildrenFiltered (line 134) | func BenchmarkChildrenFiltered(b *testing.B) { function BenchmarkParent (line 152) | func BenchmarkParent(b *testing.B) { function BenchmarkParentFiltered (line 170) | func BenchmarkParentFiltered(b *testing.B) { function BenchmarkParents (line 188) | func BenchmarkParents(b *testing.B) { function BenchmarkParentsFiltered (line 206) | func BenchmarkParentsFiltered(b *testing.B) { function BenchmarkParentsUntil (line 224) | func BenchmarkParentsUntil(b *testing.B) { function BenchmarkParentsUntilSelection (line 242) | func BenchmarkParentsUntilSelection(b *testing.B) { function BenchmarkParentsUntilNodes (line 261) | func BenchmarkParentsUntilNodes(b *testing.B) { function BenchmarkParentsFilteredUntil (line 281) | func BenchmarkParentsFilteredUntil(b *testing.B) { function BenchmarkParentsFilteredUntilSelection (line 299) | func BenchmarkParentsFilteredUntilSelection(b *testing.B) { function BenchmarkParentsFilteredUntilNodes (line 318) | func BenchmarkParentsFilteredUntilNodes(b *testing.B) { function BenchmarkSiblings (line 338) | func BenchmarkSiblings(b *testing.B) { function BenchmarkSiblingsFiltered (line 356) | func BenchmarkSiblingsFiltered(b *testing.B) { function BenchmarkNext (line 374) | func BenchmarkNext(b *testing.B) { function BenchmarkNextFiltered (line 392) | func BenchmarkNextFiltered(b *testing.B) { function BenchmarkNextAll (line 410) | func BenchmarkNextAll(b *testing.B) { function BenchmarkNextAllFiltered (line 428) | func BenchmarkNextAllFiltered(b *testing.B) { function BenchmarkPrev (line 446) | func BenchmarkPrev(b *testing.B) { function BenchmarkPrevFiltered (line 464) | func BenchmarkPrevFiltered(b *testing.B) { function BenchmarkPrevAll (line 484) | func BenchmarkPrevAll(b *testing.B) { function BenchmarkPrevAllFiltered (line 502) | func BenchmarkPrevAllFiltered(b *testing.B) { function BenchmarkNextUntil (line 520) | func BenchmarkNextUntil(b *testing.B) { function BenchmarkNextUntilSelection (line 538) | func BenchmarkNextUntilSelection(b *testing.B) { function BenchmarkNextUntilNodes (line 557) | func BenchmarkNextUntilNodes(b *testing.B) { function BenchmarkPrevUntil (line 577) | func BenchmarkPrevUntil(b *testing.B) { function BenchmarkPrevUntilSelection (line 595) | func BenchmarkPrevUntilSelection(b *testing.B) { function BenchmarkPrevUntilNodes (line 614) | func BenchmarkPrevUntilNodes(b *testing.B) { function BenchmarkNextFilteredUntil (line 634) | func BenchmarkNextFilteredUntil(b *testing.B) { function BenchmarkNextFilteredUntilSelection (line 652) | func BenchmarkNextFilteredUntilSelection(b *testing.B) { function BenchmarkNextFilteredUntilNodes (line 671) | func BenchmarkNextFilteredUntilNodes(b *testing.B) { function BenchmarkPrevFilteredUntil (line 691) | func BenchmarkPrevFilteredUntil(b *testing.B) { function BenchmarkPrevFilteredUntilSelection (line 709) | func BenchmarkPrevFilteredUntilSelection(b *testing.B) { function BenchmarkPrevFilteredUntilNodes (line 728) | func BenchmarkPrevFilteredUntilNodes(b *testing.B) { function BenchmarkClosest (line 748) | func BenchmarkClosest(b *testing.B) { function BenchmarkClosestSelection (line 766) | func BenchmarkClosestSelection(b *testing.B) { function BenchmarkClosestNodes (line 785) | func BenchmarkClosestNodes(b *testing.B) { FILE: common/goquery/example_test.go function Example (line 11) | func Example() { FILE: common/goquery/expand.go method Add (line 9) | func (s *Selection) Add(selector string) *Selection { method AddMatcher (line 17) | func (s *Selection) AddMatcher(m Matcher) *Selection { method AddSelection (line 23) | func (s *Selection) AddSelection(sel *Selection) *Selection { method Union (line 31) | func (s *Selection) Union(sel *Selection) *Selection { method AddNodes (line 37) | func (s *Selection) AddNodes(nodes ...*html.Node) *Selection { method AndSelf (line 44) | func (s *Selection) AndSelf() *Selection { FILE: common/goquery/expand_test.go function TestAdd (line 7) | func TestAdd(t *testing.T) { function TestAddInvalid (line 12) | func TestAddInvalid(t *testing.T) { function TestAddRollback (line 22) | func TestAddRollback(t *testing.T) { function TestAddSelection (line 28) | func TestAddSelection(t *testing.T) { function TestAddSelectionNil (line 35) | func TestAddSelectionNil(t *testing.T) { function TestAddSelectionRollback (line 43) | func TestAddSelectionRollback(t *testing.T) { function TestAddNodes (line 50) | func TestAddNodes(t *testing.T) { function TestAddNodesNone (line 57) | func TestAddNodesNone(t *testing.T) { function TestAddNodesRollback (line 62) | func TestAddNodesRollback(t *testing.T) { function TestAddNodesBig (line 69) | func TestAddNodesBig(t *testing.T) { function TestAndSelf (line 87) | func TestAndSelf(t *testing.T) { function TestAndSelfRollback (line 92) | func TestAndSelfRollback(t *testing.T) { FILE: common/goquery/filter.go method Filter (line 7) | func (s *Selection) Filter(selector string) *Selection { method FilterMatcher (line 14) | func (s *Selection) FilterMatcher(m Matcher) *Selection { method Not (line 20) | func (s *Selection) Not(selector string) *Selection { method NotMatcher (line 26) | func (s *Selection) NotMatcher(m Matcher) *Selection { method FilterFunction (line 32) | func (s *Selection) FilterFunction(f func(int, *Selection) bool) *Select... method NotFunction (line 38) | func (s *Selection) NotFunction(f func(int, *Selection) bool) *Selection { method FilterNodes (line 44) | func (s *Selection) FilterNodes(nodes ...*html.Node) *Selection { method NotNodes (line 50) | func (s *Selection) NotNodes(nodes ...*html.Node) *Selection { method FilterSelection (line 57) | func (s *Selection) FilterSelection(sel *Selection) *Selection { method NotSelection (line 66) | func (s *Selection) NotSelection(sel *Selection) *Selection { method Intersection (line 74) | func (s *Selection) Intersection(sel *Selection) *Selection { method Has (line 81) | func (s *Selection) Has(selector string) *Selection { method HasMatcher (line 88) | func (s *Selection) HasMatcher(m Matcher) *Selection { method HasNodes (line 95) | func (s *Selection) HasNodes(nodes ...*html.Node) *Selection { method HasSelection (line 110) | func (s *Selection) HasSelection(sel *Selection) *Selection { method End (line 119) | func (s *Selection) End() *Selection { function winnow (line 128) | func winnow(sel *Selection, m Matcher, keep bool) []*html.Node { function winnowNodes (line 141) | func winnowNodes(sel *Selection, nodes []*html.Node, keep bool) []*html.... function winnowFunction (line 159) | func winnowFunction(sel *Selection, f func(int, *Selection) bool, keep b... FILE: common/goquery/filter_test.go function TestFilter (line 7) | func TestFilter(t *testing.T) { function TestFilterNone (line 12) | func TestFilterNone(t *testing.T) { function TestFilterInvalid (line 17) | func TestFilterInvalid(t *testing.T) { function TestFilterRollback (line 22) | func TestFilterRollback(t *testing.T) { function TestFilterFunction (line 28) | func TestFilterFunction(t *testing.T) { function TestFilterFunctionRollback (line 35) | func TestFilterFunctionRollback(t *testing.T) { function TestFilterNode (line 43) | func TestFilterNode(t *testing.T) { function TestFilterNodeRollback (line 49) | func TestFilterNodeRollback(t *testing.T) { function TestFilterSelection (line 55) | func TestFilterSelection(t *testing.T) { function TestFilterSelectionRollback (line 62) | func TestFilterSelectionRollback(t *testing.T) { function TestFilterSelectionNil (line 69) | func TestFilterSelectionNil(t *testing.T) { function TestNot (line 77) | func TestNot(t *testing.T) { function TestNotInvalid (line 82) | func TestNotInvalid(t *testing.T) { function TestNotRollback (line 87) | func TestNotRollback(t *testing.T) { function TestNotNone (line 93) | func TestNotNone(t *testing.T) { function TestNotFunction (line 98) | func TestNotFunction(t *testing.T) { function TestNotFunctionRollback (line 105) | func TestNotFunctionRollback(t *testing.T) { function TestNotNode (line 113) | func TestNotNode(t *testing.T) { function TestNotNodeRollback (line 119) | func TestNotNodeRollback(t *testing.T) { function TestNotSelection (line 125) | func TestNotSelection(t *testing.T) { function TestNotSelectionRollback (line 132) | func TestNotSelectionRollback(t *testing.T) { function TestIntersection (line 139) | func TestIntersection(t *testing.T) { function TestIntersectionRollback (line 145) | func TestIntersectionRollback(t *testing.T) { function TestHas (line 152) | func TestHas(t *testing.T) { function TestHasInvalid (line 158) | func TestHasInvalid(t *testing.T) { function TestHasRollback (line 163) | func TestHasRollback(t *testing.T) { function TestHasNodes (line 169) | func TestHasNodes(t *testing.T) { function TestHasNodesRollback (line 177) | func TestHasNodesRollback(t *testing.T) { function TestHasSelection (line 184) | func TestHasSelection(t *testing.T) { function TestHasSelectionRollback (line 191) | func TestHasSelectionRollback(t *testing.T) { function TestEnd (line 198) | func TestEnd(t *testing.T) { function TestEndToTop (line 203) | func TestEndToTop(t *testing.T) { FILE: common/goquery/iteration.go method Each (line 8) | func (s *Selection) Each(f func(int, *Selection)) *Selection { method EachWithBreak (line 19) | func (s *Selection) EachWithBreak(f func(int, *Selection) bool) *Selecti... method Map (line 33) | func (s *Selection) Map(f func(int, *Selection) string) (result []string) { FILE: common/goquery/iteration_test.go function TestEach (line 9) | func TestEach(t *testing.T) { function TestEachWithBreak (line 23) | func TestEachWithBreak(t *testing.T) { function TestEachEmptySelection (line 38) | func TestEachEmptySelection(t *testing.T) { function TestMap (line 52) | func TestMap(t *testing.T) { function TestForRange (line 71) | func TestForRange(t *testing.T) { FILE: common/goquery/manipulation.go method After (line 17) | func (s *Selection) After(selector string) *Selection { method AfterMatcher (line 28) | func (s *Selection) AfterMatcher(m Matcher) *Selection { method AfterSelection (line 36) | func (s *Selection) AfterSelection(sel *Selection) *Selection { method AfterHtml (line 43) | func (s *Selection) AfterHtml(html string) *Selection { method AfterNodes (line 50) | func (s *Selection) AfterNodes(ns ...*html.Node) *Selection { method Append (line 68) | func (s *Selection) Append(selector string) *Selection { method AppendMatcher (line 76) | func (s *Selection) AppendMatcher(m Matcher) *Selection { method AppendSelection (line 84) | func (s *Selection) AppendSelection(sel *Selection) *Selection { method AppendHtml (line 89) | func (s *Selection) AppendHtml(html string) *Selection { method AppendNodes (line 96) | func (s *Selection) AppendNodes(ns ...*html.Node) *Selection { method Before (line 105) | func (s *Selection) Before(selector string) *Selection { method BeforeMatcher (line 112) | func (s *Selection) BeforeMatcher(m Matcher) *Selection { method BeforeSelection (line 120) | func (s *Selection) BeforeSelection(sel *Selection) *Selection { method BeforeHtml (line 127) | func (s *Selection) BeforeHtml(html string) *Selection { method BeforeNodes (line 134) | func (s *Selection) BeforeNodes(ns ...*html.Node) *Selection { method Clone (line 144) | func (s *Selection) Clone() *Selection { method Empty (line 152) | func (s *Selection) Empty() *Selection { method Prepend (line 167) | func (s *Selection) Prepend(selector string) *Selection { method PrependMatcher (line 175) | func (s *Selection) PrependMatcher(m Matcher) *Selection { method PrependSelection (line 183) | func (s *Selection) PrependSelection(sel *Selection) *Selection { method PrependHtml (line 188) | func (s *Selection) PrependHtml(html string) *Selection { method PrependNodes (line 196) | func (s *Selection) PrependNodes(ns ...*html.Node) *Selection { method Remove (line 206) | func (s *Selection) Remove() *Selection { method RemoveFiltered (line 218) | func (s *Selection) RemoveFiltered(selector string) *Selection { method RemoveMatcher (line 224) | func (s *Selection) RemoveMatcher(m Matcher) *Selection { method ReplaceWith (line 233) | func (s *Selection) ReplaceWith(selector string) *Selection { method ReplaceWithMatcher (line 242) | func (s *Selection) ReplaceWithMatcher(m Matcher) *Selection { method ReplaceWithSelection (line 251) | func (s *Selection) ReplaceWithSelection(sel *Selection) *Selection { method ReplaceWithHtml (line 260) | func (s *Selection) ReplaceWithHtml(html string) *Selection { method ReplaceWithNodes (line 269) | func (s *Selection) ReplaceWithNodes(ns ...*html.Node) *Selection { method Unwrap (line 277) | func (s *Selection) Unwrap() *Selection { method Wrap (line 295) | func (s *Selection) Wrap(selector string) *Selection { method WrapMatcher (line 304) | func (s *Selection) WrapMatcher(m Matcher) *Selection { method WrapSelection (line 313) | func (s *Selection) WrapSelection(sel *Selection) *Selection { method WrapHtml (line 321) | func (s *Selection) WrapHtml(html string) *Selection { method WrapNode (line 330) | func (s *Selection) WrapNode(n *html.Node) *Selection { method wrapNodes (line 334) | func (s *Selection) wrapNodes(ns ...*html.Node) *Selection { method WrapAll (line 347) | func (s *Selection) WrapAll(selector string) *Selection { method WrapAllMatcher (line 356) | func (s *Selection) WrapAllMatcher(m Matcher) *Selection { method WrapAllSelection (line 365) | func (s *Selection) WrapAllSelection(sel *Selection) *Selection { method WrapAllHtml (line 374) | func (s *Selection) WrapAllHtml(html string) *Selection { method wrapAllNodes (line 378) | func (s *Selection) wrapAllNodes(ns ...*html.Node) *Selection { method WrapAllNode (line 390) | func (s *Selection) WrapAllNode(n *html.Node) *Selection { method WrapInner (line 417) | func (s *Selection) WrapInner(selector string) *Selection { method WrapInnerMatcher (line 426) | func (s *Selection) WrapInnerMatcher(m Matcher) *Selection { method WrapInnerSelection (line 435) | func (s *Selection) WrapInnerSelection(sel *Selection) *Selection { method WrapInnerHtml (line 444) | func (s *Selection) WrapInnerHtml(html string) *Selection { method WrapInnerNode (line 453) | func (s *Selection) WrapInnerNode(n *html.Node) *Selection { method wrapInnerNodes (line 457) | func (s *Selection) wrapInnerNodes(ns ...*html.Node) *Selection { function parseHtml (line 475) | func parseHtml(h string) []*html.Node { function getFirstChildEl (line 486) | func getFirstChildEl(n *html.Node) *html.Node { function cloneNodes (line 495) | func cloneNodes(ns []*html.Node) []*html.Node { function cloneNode (line 507) | func cloneNode(n *html.Node) *html.Node { method manipulateNodes (line 523) | func (s *Selection) manipulateNodes(ns []*html.Node, reverse bool, FILE: common/goquery/manipulation_test.go constant wrapHtml (line 8) | wrapHtml = "
constant TEMPLATE_DOCPROPS_APP (line 13) | TEMPLATE_DOCPROPS_APP = `