예제 #1
0
    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)
예제 #2
0
 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
예제 #3
0
    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
예제 #4
0
    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