HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper Class Reference
Inheritance diagram for dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper:
Collaboration diagram for dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper:

Public Member Functions

def __init__ (self, jsonData)
 
def setProxyData (self, proxyData)
 
def getProxyData (self, proxyName)
 
def getData (self)
 
def addProxyList (self, proxyList)
 
def getProxyList (self, state=None)
 
def addFrequency (self, proxyName, incrementSize=DEFAULT_VALUE_INCREMENT_FREQUENCY)
 
def addFaults (self, proxyName, incrementSize=DEFAULT_VALUE_INCREMENT_FAULTS)
 

Public Attributes

 jsonData
 

Static Public Attributes

string PROXIES_HOST_NAME = 'host'
 
string PROXIES_DOMAINS_NAME = 'domains'
 
string PROXIES_PRIORITY_NAME = 'priority'
 
string PROXIES_LIMITS_NAME = 'limits'
 
string PROXIES_STATE_NAME = 'state'
 
string PROXIES_FREQ_NAME = 'freq'
 
string PROXIES_FAULTS_NAME = 'faults'
 
string PROXIES_FAULTS_MAX_NAME = 'faultsMax'
 
list PROXIES_DATA_LIST_NAMES
 
int PROXY_STATE_DISABLED = 0
 
int PROXY_STATE_ENABLED = 1
 
dictionary DEFAULT_VALUE_JSON_DATA = {}
 
list DEFAULT_VALUE_PROXIES_DOMAIN = ['*']
 
int DEFAULT_VALUE_PROXIES_PRIORITY = 10
 
 DEFAULT_VALUE_PROXIES_LIMITS = None
 
int DEFAULT_VALUE_PROXIES_STATE = PROXY_STATE_ENABLED
 
int DEFAULT_VALUE_PROXIES_FREQ = 0
 
int DEFAULT_VALUE_PROXIES_FAULTS = 0
 
int DEFAULT_VALUE_PROXIES_FAULTS_MAX = 0
 
int DEFAULT_VALUE_INCREMENT_FREQUENCY = 1
 
int DEFAULT_VALUE_INCREMENT_FAULTS = 1
 
int DEFAULT_VALUE_UNLIMITED_FAULTS_MAX = 0
 

Detailed Description

Definition at line 19 of file ProxyJsonWrapper.py.

Constructor & Destructor Documentation

◆ __init__()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.__init__ (   self,
  jsonData 
)

Definition at line 53 of file ProxyJsonWrapper.py.

53  def __init__(self, jsonData):
54  self.jsonData = (jsonData if isinstance(jsonData, dict) else self.DEFAULT_VALUE_JSON_DATA)
55 
56 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ addFaults()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.addFaults (   self,
  proxyName,
  incrementSize = DEFAULT_VALUE_INCREMENT_FAULTS 
)

Definition at line 175 of file ProxyJsonWrapper.py.

175  def addFaults(self, proxyName, incrementSize=DEFAULT_VALUE_INCREMENT_FAULTS):
176  proxyData = self.getProxyData(proxyName)
177  if proxyData is not None:
178  # increment faults counter
179  faults = int(proxyData[self.PROXIES_FAULTS_NAME]) if self.PROXIES_FAULTS_NAME in proxyData \
180  else self.DEFAULT_VALUE_PROXIES_FAULTS
181  faults += incrementSize
182  proxyData[self.PROXIES_FAULTS_NAME] = faults
183 
184  # get faults max value
185  faultsMax = int(proxyData[self.PROXIES_FAULTS_MAX_NAME]) if self.PROXIES_FAULTS_MAX_NAME in proxyData \
186  else self.DEFAULT_VALUE_PROXIES_FAULTS_MAX
187 
188  # check max allowed faults and disable if necessary
189  if faultsMax != self.DEFAULT_VALUE_UNLIMITED_FAULTS_MAX and faults >= faultsMax:
190  # disable proxy
191  proxyData[self.PROXIES_STATE_NAME] = self.PROXY_STATE_DISABLED
192 
193  # apply changes
194  self.setProxyData(proxyData)
195 
Here is the call graph for this function:

◆ addFrequency()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.addFrequency (   self,
  proxyName,
  incrementSize = DEFAULT_VALUE_INCREMENT_FREQUENCY 
)

Definition at line 157 of file ProxyJsonWrapper.py.

157  def addFrequency(self, proxyName, incrementSize=DEFAULT_VALUE_INCREMENT_FREQUENCY):
158  proxyData = self.getProxyData(proxyName)
159  if proxyData is not None:
160  # increment frequency counter
161  frequency = int(proxyData[self.PROXIES_FREQ_NAME]) if self.PROXIES_FREQ_NAME in proxyData \
162  else self.DEFAULT_VALUE_PROXIES_FREQ
163  frequency += int(incrementSize)
164  proxyData[self.PROXIES_FREQ_NAME] = frequency
165 
166  # apply changes
167  self.setProxyData(proxyData)
168 
169 
Here is the call graph for this function:

◆ addProxyList()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.addProxyList (   self,
  proxyList 
)

Definition at line 116 of file ProxyJsonWrapper.py.

116  def addProxyList(self, proxyList):
117  if isinstance(proxyList, list):
118  for proxy in proxyList:
119  if isinstance(proxy, Proxy):
120  proxyData = {}
121  for name in self.PROXIES_DATA_LIST_NAMES:
122  if hasattr(proxy, name):
123  proxyData[name] = getattr(proxy, name)
124 
125  self.setProxyData(proxyData)
126 
127 
Here is the call graph for this function:

◆ getData()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.getData (   self)

Definition at line 108 of file ProxyJsonWrapper.py.

108  def getData(self):
109  return self.jsonData
110 
111 

◆ getProxyData()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.getProxyData (   self,
  proxyName 
)

Definition at line 95 of file ProxyJsonWrapper.py.

95  def getProxyData(self, proxyName):
96  # variable for result
97  ret = None
98  if proxyName in self.jsonData:
99  ret = self.jsonData[proxyName]
100 
101  return ret
102 
103 
Here is the caller graph for this function:

◆ getProxyList()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.getProxyList (   self,
  state = None 
)

Definition at line 132 of file ProxyJsonWrapper.py.

132  def getProxyList(self, state=None):
133  # variable for result
134  proxyList = []
135 
136  for proxyName in self.jsonData.keys():
137  proxyData = self.getProxyData(proxyName)
138 
139  proxy = Proxy(siteId='0', host='')
140  for name in self.PROXIES_DATA_LIST_NAMES:
141  if name in proxyData:
142  setattr(proxy, name, proxyData[name])
143 
144  if self.PROXIES_FREQ_NAME in proxyData:
145  setattr(proxy, self.PROXIES_FREQ_NAME, int(proxyData[self.PROXIES_FREQ_NAME]))
146 
147  if proxy.host != "" and (proxy.state == state if state is not None else True):
148  proxyList.append(proxy)
149 
150  return proxyList
151 
152 
Here is the call graph for this function:

◆ setProxyData()

def dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.setProxyData (   self,
  proxyData 
)

Definition at line 61 of file ProxyJsonWrapper.py.

61  def setProxyData(self, proxyData):
62  if isinstance(proxyData, dict):
63  if self.PROXIES_HOST_NAME in proxyData.keys() and proxyData[self.PROXIES_HOST_NAME] not in self.jsonData:
64 
65  proxyData[self.PROXIES_DOMAINS_NAME] = proxyData[self.PROXIES_DOMAINS_NAME] \
66  if self.PROXIES_PRIORITY_NAME in proxyData.keys() and proxyData[self.PROXIES_DOMAINS_NAME] is not None \
67  and len(proxyData[self.PROXIES_DOMAINS_NAME]) > 0 else self.DEFAULT_VALUE_PROXIES_DOMAIN
68 
69  proxyData[self.PROXIES_PRIORITY_NAME] = proxyData[self.PROXIES_PRIORITY_NAME] \
70  if self.PROXIES_PRIORITY_NAME in proxyData.keys() and proxyData[self.PROXIES_PRIORITY_NAME] is not None \
71  and int(proxyData[self.PROXIES_PRIORITY_NAME]) > 0 else self.DEFAULT_VALUE_PROXIES_PRIORITY
72 
73  proxyData[self.PROXIES_LIMITS_NAME] = proxyData[self.PROXIES_LIMITS_NAME] \
74  if self.PROXIES_LIMITS_NAME in proxyData.keys() else self.DEFAULT_VALUE_PROXIES_LIMITS
75 
76  proxyData[self.PROXIES_STATE_NAME] = proxyData[self.PROXIES_STATE_NAME] \
77  if self.PROXIES_STATE_NAME in proxyData.keys() else self.DEFAULT_VALUE_PROXIES_STATE
78 
79  proxyData[self.PROXIES_FREQ_NAME] = proxyData[self.PROXIES_FREQ_NAME] \
80  if self.PROXIES_FREQ_NAME in proxyData.keys() else self.DEFAULT_VALUE_PROXIES_FREQ
81 
82  proxyData[self.PROXIES_FAULTS_NAME] = proxyData[self.PROXIES_FAULTS_NAME] \
83  if self.PROXIES_FAULTS_NAME in proxyData.keys() else self.DEFAULT_VALUE_PROXIES_FAULTS
84 
85  proxyData[self.PROXIES_FAULTS_MAX_NAME] = proxyData[self.PROXIES_FAULTS_MAX_NAME] \
86  if self.PROXIES_FAULTS_MAX_NAME in proxyData.keys() else self.DEFAULT_VALUE_PROXIES_FAULTS_MAX
87 
88  self.jsonData[proxyData[self.PROXIES_HOST_NAME]] = proxyData
89 
90 
Here is the caller graph for this function:

Member Data Documentation

◆ DEFAULT_VALUE_INCREMENT_FAULTS

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_INCREMENT_FAULTS = 1
static

Definition at line 46 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_INCREMENT_FREQUENCY

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_INCREMENT_FREQUENCY = 1
static

Definition at line 45 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_JSON_DATA

dictionary dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_JSON_DATA = {}
static

Definition at line 36 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_DOMAIN

list dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_DOMAIN = ['*']
static

Definition at line 37 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_FAULTS

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_FAULTS = 0
static

Definition at line 42 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_FAULTS_MAX

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_FAULTS_MAX = 0
static

Definition at line 43 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_FREQ

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_FREQ = 0
static

Definition at line 41 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_LIMITS

dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_LIMITS = None
static

Definition at line 39 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_PRIORITY

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_PRIORITY = 10
static

Definition at line 38 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_PROXIES_STATE

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_PROXIES_STATE = PROXY_STATE_ENABLED
static

Definition at line 40 of file ProxyJsonWrapper.py.

◆ DEFAULT_VALUE_UNLIMITED_FAULTS_MAX

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.DEFAULT_VALUE_UNLIMITED_FAULTS_MAX = 0
static

Definition at line 47 of file ProxyJsonWrapper.py.

◆ jsonData

dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.jsonData

Definition at line 54 of file ProxyJsonWrapper.py.

◆ PROXIES_DATA_LIST_NAMES

list dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_DATA_LIST_NAMES
static
Initial value:
= [PROXIES_HOST_NAME, PROXIES_DOMAINS_NAME, PROXIES_PRIORITY_NAME, PROXIES_LIMITS_NAME, \
PROXIES_STATE_NAME, PROXIES_FREQ_NAME, PROXIES_FAULTS_NAME, PROXIES_FAULTS_MAX_NAME]

Definition at line 30 of file ProxyJsonWrapper.py.

◆ PROXIES_DOMAINS_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_DOMAINS_NAME = 'domains'
static

Definition at line 22 of file ProxyJsonWrapper.py.

◆ PROXIES_FAULTS_MAX_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_FAULTS_MAX_NAME = 'faultsMax'
static

Definition at line 28 of file ProxyJsonWrapper.py.

◆ PROXIES_FAULTS_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_FAULTS_NAME = 'faults'
static

Definition at line 27 of file ProxyJsonWrapper.py.

◆ PROXIES_FREQ_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_FREQ_NAME = 'freq'
static

Definition at line 26 of file ProxyJsonWrapper.py.

◆ PROXIES_HOST_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_HOST_NAME = 'host'
static

Definition at line 21 of file ProxyJsonWrapper.py.

◆ PROXIES_LIMITS_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_LIMITS_NAME = 'limits'
static

Definition at line 24 of file ProxyJsonWrapper.py.

◆ PROXIES_PRIORITY_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_PRIORITY_NAME = 'priority'
static

Definition at line 23 of file ProxyJsonWrapper.py.

◆ PROXIES_STATE_NAME

string dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXIES_STATE_NAME = 'state'
static

Definition at line 25 of file ProxyJsonWrapper.py.

◆ PROXY_STATE_DISABLED

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXY_STATE_DISABLED = 0
static

Definition at line 33 of file ProxyJsonWrapper.py.

◆ PROXY_STATE_ENABLED

int dc_crawler.ProxyJsonWrapper.ProxyJsonWrapper.PROXY_STATE_ENABLED = 1
static

Definition at line 34 of file ProxyJsonWrapper.py.


The documentation for this class was generated from the following file: