def get_accounts(self, begin=None, state=None, create_time=None, limit = 10000, **kwargs): log.trace('get_accounts %s ', begin) params = [] sql = "select * from accounts where " if begin is not None: sql += 'id > %d' % begin if state is not None: if state < 1: sql += ' and state = %d' % state else: sql += ' and state >= %d' % state else: sql += ' and state != -1' if create_time is not None: sql += ' and create_time <= %s ' params.append(create_time) for k, v in kwargs.items(): if v is None: continue sql += ' and %s = %%s ' % (k) params.append(v) sql += ' order by id limit %d' % limit log.debug("sql %s params %s", sql, params) return self.db.query(sql, *params)
def get_siteconfig(self): if hasattr(self, 'site_config'): return site_file = self.conf.site_config site_config = DictIni(site_file) site_config.all = set([x for x in site_config.keys() if x and not x.startswith('_')]) self.site_config = site_config log.debug('load site_conf %s', self.site_config.all) return
def load_thread(self): log.debug("begin %s", self.func_name) if len(self.data) >= self.limit: log.debug("skip %s", self.func_name) time.sleep(3) return try: data = self.load_accounts() if data: log.trace("%s load %s", self.func_name, len(data)) self.data.extend(data) except: log.exception() pass
def login(self): login_page = self.web.get_page(self.APP_URL) post_url = text.get_in(login_page, "urlPost:'", "'") log.debug('get post_url %s, url %s', post_url, self.web.url) if not post_url: return False data = html.get_hidden(login_page) data.update({'login' : self.name, 'passwd' : self.psw, 'NewUser' : '1', }) self.log.debug('get post data %s', data) #req = urllib2.Request(url, data=data, headers=headers) result = self.web.get_page(post_url, data=data, headers={'referer' : self.web.url}) if result is None: self.log.debug('post %s is_name', post_url) return False if result.find('onload="javascript:DoSubmit();"') != -1: result = self.web.submit(result) if self.web.url.find('Logincredprof.aspx') != -1: self.log.debug('into active account') result = self.active(result) if result is None: self.log.debug('active account fail') if self.web.url.find('/Proofs/Manage') != -1: proofs_page = self.web.submit(result) result = self.proofs(proofs_page) if result is None: raise ProofException() if result.find('javascript:rd();') != -1: return True return False