示例#1
0
    def create_one(self, full_domain):
        firstname = self.names.get()
        lastname = self.names.get()
        name = text.rnd_str(3)
        ct = self.doamin_ct[full_domain]
        if self.app.add_account(full_domain, name, lastname, firstname):
            self.total += 1
            ct += 1
            acc = "%s@%s" % (name, full_domain)
            log.error("success %s %s total:%s" % (acc, ct, self.total))
            # with self.lock:
            self.out.write("%s\n" % acc)
            self.out.flush()
            if self.client:
                try:
                    self.client.add_account(acc)
                except:
                    log.exception("add_account fail")
                    time.sleep(3)

            self.doamin_ct[full_domain] += 1

            return True
        else:
            log.error("fail %s@%s %s total:%s" % (name, ct, full_domain, self.total))
            return False
示例#2
0
def _shortcut(url, *args, **kwargs):
    try:
        api = Api('AIzaSyDRPL5alBt_dQ-1IZElkoI19aUm_85Z0eE')
        return api.url_shortener(url, *args, **kwargs)
    except:
        log.exception("_shortcut fail")
        return ''
示例#3
0
 def get_tos_data(self, handler, limit=10000):
     res = []
     for i in xrange(limit):
         try:
             res.append(self.tos_data.get())
         except:
             log.exception('')
             break
     self.tos_data.sync()
     return res
示例#4
0
def shortcut(url, *args, **kwargs):
    url = '%s?%s' % (url, time.time())
    for i in range(3):
        s = _shortcut(url, *args, **kwargs)
        if s.startswith('http://goo.gl/'):
            log.trace("url %s get short %s", url, s)
            return s
        else:
            log.exception("google shortcut %s fail", url)
            time.sleep(3)
示例#5
0
 def _next(self):
     while True:
         try:
             ret = self.client.get_new_account()
         except:
             log.exception("get_new_account fail")
             time.sleep(5)
             continue
         if not ret:
             time.sleep(5)
             continue
             break
         yield ret
示例#6
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
示例#7
0
 def get_send_accounts(self, handler, limit=10000):
     res = []
     try:
         while True:
             row = self._send_accounts_iter.next()
             if row is None:
                 break
             res.append(row.account)
             if len(res) >= limit:
                 break
         self.db.update_action_num('send_accounts', row.id)
     except StopIteration:
         self.db.update_action_num('send_accounts', 0)
         pass
     except:
         log.exception('')
         pass
     return res
示例#8
0
    def load_accounts(self):
        while True:
            try:
                self.data = self.client.get_send_accounts()
                if not self.data:
                    log.trace('load send_accounts not data')
                    time.sleep(3)
                    continue
                break
            except:
                log.exception("get_send_accounts fail")
                time.sleep(3)
                continue
        shuffle(self.data)
        #file('data/send_accounts%s.txt' % (datetime.now().strftime('%Y%M%d%H%m%S')), 'w').write('\n'.join(self.data))

        if not self.data:
            raise Exception('Not Data Left')
示例#9
0
    def load_accounts(self):
        while True:
            try:
                data = getattr(self.client, self.func_name)(self.limit)
                if not data:
                    log.trace("load %s not data", self.func_name)
                    time.sleep(3)
                    continue
                break
            except:
                log.exception("%s fail", self.func_name)
                time.sleep(3)
                continue
        # file('data/%s%s.txt' % (self.func_name, datetime.now().strftime('%Y%M%d%H%m%S')), 'w').write('\n'.join(data))
        random.shuffle(data)

        if not data:
            raise Exception("Not Data Left")
        return data
示例#10
0
 def work(self, *args, **kwargs):
     try:
         return self._work(*args, **kwargs)
     except:
         log.exception("")