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
app.ContentEvaluator.ContentEvaluator Class Reference
Inheritance diagram for app.ContentEvaluator.ContentEvaluator:
Collaboration diagram for app.ContentEvaluator.ContentEvaluator:

Public Member Functions

def __init__ (self)
 

Static Public Member Functions

def executeSqlExpression (dbWrapper, siteId, sqlExpression)
 
def executeReplace (dbWrapper, siteId, propertyString, contentData)
 
def executeReplaceRawContent (dbWrapper, siteId, pattern, repl, sqlExpression, contentData)
 

Static Public Attributes

string PROPERTY_WHERE_NAME = 'WHERE'
 
string PROPERTY_WHAT_NAME = 'WHAT'
 
string PROPERTY_WITH_NAME = 'WITH'
 
string PROPERTY_CONDITION_NAME = 'CONDITION'
 
string PROPERTY_WHERE_VALUE_RAW = 'RAW'
 
string DB_NAME = "dc_urls"
 
string QUERY_TEMPALATE = "SELECT * from urls_%s WHERE %s"
 
string ERROR_MSG_BAD_FORMAT = "Wrong format of input json: %s"
 
string ERROR_MSG_BAD_TYPE = "Wrong type of parameter '%s'"
 
string ERROR_MSG_BAD_DBWRAPPER = "DBWrapper instance is None"
 
string ERROR_MSG_MISSED_PARAMETER = "Missed parameter '%s'"
 
string ERROR_MSG_WRONG_PARAMETER = "Parameter '%s' has not support value '%s'"
 

Detailed Description

Definition at line 26 of file ContentEvaluator.py.

Constructor & Destructor Documentation

◆ __init__()

def app.ContentEvaluator.ContentEvaluator.__init__ (   self)

Definition at line 48 of file ContentEvaluator.py.

48  def __init__(self):
49  pass
50 
51 
def __init__(self)
constructor
Definition: UIDGenerator.py:19

Member Function Documentation

◆ executeReplace()

def app.ContentEvaluator.ContentEvaluator.executeReplace (   dbWrapper,
  siteId,
  propertyString,
  contentData 
)
static

Definition at line 101 of file ContentEvaluator.py.

101  def executeReplace(dbWrapper, siteId, propertyString, contentData):
102  # variable for result
103  ret = contentData
104  try:
105  propertyObjs = json.loads(propertyString)
106 
107  logger.debug("propertyObj: %s", varDump(propertyObjs))
108 
109  if not isinstance(propertyObjs, list):
110  raise Exception(ContentEvaluator.ERROR_MSG_BAD_FORMAT % varDump(propertyObjs))
111 
112  for propertyObj in propertyObjs:
113  try:
114  if ContentEvaluator.PROPERTY_WHERE_NAME not in propertyObj:
115  raise Exception(ContentEvaluator.ERROR_MSG_MISSED_PARAMETER % str(ContentEvaluator.PROPERTY_WHERE_NAME))
116  else:
117  if not isinstance(propertyObj[ContentEvaluator.PROPERTY_WHERE_NAME], basestring):
118  raise Exception(ContentEvaluator.ERROR_MSG_BAD_TYPE % ContentEvaluator.PROPERTY_WHERE_NAME)
119 
120  if ContentEvaluator.PROPERTY_WHAT_NAME not in propertyObj:
121  raise Exception(ContentEvaluator.ERROR_MSG_MISSED_PARAMETER % str(ContentEvaluator.PROPERTY_WHAT_NAME))
122  else:
123  if not isinstance(propertyObj[ContentEvaluator.PROPERTY_WHAT_NAME], basestring):
124  raise Exception(ContentEvaluator.ERROR_MSG_BAD_TYPE % ContentEvaluator.PROPERTY_WHAT_NAME)
125 
126  if ContentEvaluator.PROPERTY_WITH_NAME not in propertyObj:
127  raise Exception(ContentEvaluator.ERROR_MSG_MISSED_PARAMETER % str(ContentEvaluator.PROPERTY_WITH_NAME))
128  else:
129  if not isinstance(propertyObj[ContentEvaluator.PROPERTY_WITH_NAME], basestring):
130  raise Exception(ContentEvaluator.ERROR_MSG_BAD_TYPE % ContentEvaluator.PROPERTY_WITH_NAME)
131 
132  if ContentEvaluator.PROPERTY_CONDITION_NAME in propertyObj and \
133  not isinstance(propertyObj[ContentEvaluator.PROPERTY_CONDITION_NAME], basestring):
134  raise Exception(ContentEvaluator.ERROR_MSG_BAD_TYPE % ContentEvaluator.PROPERTY_CONDITION_NAME)
135 
136  if propertyObj[ContentEvaluator.PROPERTY_WHERE_NAME] == ContentEvaluator.PROPERTY_WHERE_VALUE_RAW:
137  ret = ContentEvaluator.executeReplaceRawContent(
138  dbWrapper=dbWrapper,
139  siteId=siteId,
140  pattern=propertyObj[ContentEvaluator.PROPERTY_WHAT_NAME],
141  repl=propertyObj[ContentEvaluator.PROPERTY_WITH_NAME],
142  sqlExpression=propertyObj[ContentEvaluator.PROPERTY_CONDITION_NAME],
143  contentData=contentData)
144  else:
145  raise Exception(ContentEvaluator.ERROR_MSG_WRONG_PARAMETER % \
146  (str(ContentEvaluator.PROPERTY_WHERE_NAME),
147  str(propertyObj[ContentEvaluator.PROPERTY_WHERE_NAME])))
148 
149  except Exception, err:
150  logger.error(str(err))
151 
152  except Exception, err:
153  logger.error(str(err))
154 
155  return ret
156 
157 
def varDump(obj, stringify=True, strTypeMaxLen=256, strTypeCutSuffix='...', stringifyType=1, ignoreErrors=False, objectsHash=None, depth=0, indent=2, ensure_ascii=False, maxDepth=10)
Definition: Utils.py:410
Here is the call graph for this function:

◆ executeReplaceRawContent()

def app.ContentEvaluator.ContentEvaluator.executeReplaceRawContent (   dbWrapper,
  siteId,
  pattern,
  repl,
  sqlExpression,
  contentData 
)
static

Definition at line 168 of file ContentEvaluator.py.

168  def executeReplaceRawContent(dbWrapper, siteId, pattern, repl, sqlExpression, contentData):
169  # variable for result
170  ret = contentData
171  try:
172  if sqlExpression == "":
173  resSqlExpression = True
174  else:
175  resSqlExpression = ContentEvaluator.executeSqlExpression(dbWrapper, siteId, sqlExpression)
176 
177  logger.debug("resSqlExpression: %s", str(resSqlExpression))
178  if resSqlExpression:
179  ret = re.sub(pattern, repl, contentData)
180 
181  logger.debug("before replace len= %s, after replace len = %s", str(len(contentData)), str(len(ret)))
182  except Exception, err:
183  logger.error(str(err))
184 
185  return ret
186 

◆ executeSqlExpression()

def app.ContentEvaluator.ContentEvaluator.executeSqlExpression (   dbWrapper,
  siteId,
  sqlExpression 
)
static

Definition at line 59 of file ContentEvaluator.py.

59  def executeSqlExpression(dbWrapper, siteId, sqlExpression):
60  # variable for result
61  ret = False
62  try:
63  if not isinstance(sqlExpression, basestring):
64  raise Exception(ContentEvaluator.ERROR_MSG_BAD_TYPE % ContentEvaluator.PROPERTY_CONDITION_NAME)
65 
66  if dbWrapper is None:
67  raise Exception(ContentEvaluator.ERROR_MSG_BAD_DBWRAPPER)
68 
69  logger.debug('sqlExpression: %s', str(sqlExpression))
70  sqlQuery = ContentEvaluator.QUERY_TEMPALATE % (str(siteId), str(sqlExpression))
71 
72  logger.debug("sqlQuery: " + str(sqlQuery))
73  affectDB = dbWrapper.affect_db
74  dbWrapper.affect_db = True
75  customResponse = None
76  try:
77  customResponse = dbWrapper.customRequest(sqlQuery, ContentEvaluator.DB_NAME)
78  except DatabaseException, err:
79  logger.error("Bad query: " + str(sqlQuery))
80 
81  dbWrapper.affect_db = affectDB
82  logger.debug("customResponse: " + str(customResponse))
83 
84  if customResponse is not None and len(customResponse) > 0 and len(customResponse[0]) > 0:
85  ret = True
86 
87  except Exception, err:
88  logger.error(str(err))
89 
90  return ret
91 
92 

Member Data Documentation

◆ DB_NAME

string app.ContentEvaluator.ContentEvaluator.DB_NAME = "dc_urls"
static

Definition at line 37 of file ContentEvaluator.py.

◆ ERROR_MSG_BAD_DBWRAPPER

string app.ContentEvaluator.ContentEvaluator.ERROR_MSG_BAD_DBWRAPPER = "DBWrapper instance is None"
static

Definition at line 43 of file ContentEvaluator.py.

◆ ERROR_MSG_BAD_FORMAT

string app.ContentEvaluator.ContentEvaluator.ERROR_MSG_BAD_FORMAT = "Wrong format of input json: %s"
static

Definition at line 41 of file ContentEvaluator.py.

◆ ERROR_MSG_BAD_TYPE

string app.ContentEvaluator.ContentEvaluator.ERROR_MSG_BAD_TYPE = "Wrong type of parameter '%s'"
static

Definition at line 42 of file ContentEvaluator.py.

◆ ERROR_MSG_MISSED_PARAMETER

string app.ContentEvaluator.ContentEvaluator.ERROR_MSG_MISSED_PARAMETER = "Missed parameter '%s'"
static

Definition at line 44 of file ContentEvaluator.py.

◆ ERROR_MSG_WRONG_PARAMETER

string app.ContentEvaluator.ContentEvaluator.ERROR_MSG_WRONG_PARAMETER = "Parameter '%s' has not support value '%s'"
static

Definition at line 45 of file ContentEvaluator.py.

◆ PROPERTY_CONDITION_NAME

string app.ContentEvaluator.ContentEvaluator.PROPERTY_CONDITION_NAME = 'CONDITION'
static

Definition at line 32 of file ContentEvaluator.py.

◆ PROPERTY_WHAT_NAME

string app.ContentEvaluator.ContentEvaluator.PROPERTY_WHAT_NAME = 'WHAT'
static

Definition at line 30 of file ContentEvaluator.py.

◆ PROPERTY_WHERE_NAME

string app.ContentEvaluator.ContentEvaluator.PROPERTY_WHERE_NAME = 'WHERE'
static

Definition at line 29 of file ContentEvaluator.py.

◆ PROPERTY_WHERE_VALUE_RAW

string app.ContentEvaluator.ContentEvaluator.PROPERTY_WHERE_VALUE_RAW = 'RAW'
static

Definition at line 34 of file ContentEvaluator.py.

◆ PROPERTY_WITH_NAME

string app.ContentEvaluator.ContentEvaluator.PROPERTY_WITH_NAME = 'WITH'
static

Definition at line 31 of file ContentEvaluator.py.

◆ QUERY_TEMPALATE

string app.ContentEvaluator.ContentEvaluator.QUERY_TEMPALATE = "SELECT * from urls_%s WHERE %s"
static

Definition at line 38 of file ContentEvaluator.py.


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