コード例 #1
0
ファイル: views.py プロジェクト: xurubin/WeiboObservatory
def to_mid(sid):
    result = []
    while sid:
        if sid < 10000000:
            result.insert(0, base62_encode(sid % 10000000))
        else:
            result.insert(0, base62_encode(sid % 10000000, padding=4))
        sid /= 10000000
    return "".join(result)
コード例 #2
0
ファイル: taobb.py プロジェクト: chenjunhua1/tao.bb
def save(kv, db):

    url = request.forms['url']
    if not url:
        return {'err' : '请输入URL'}

    url = url_normalize(url)
    if not url:
        return {'err' : '请输入有效的 URL'}

    surl = urlsplit(url)
    if surl.netloc.endswith(BLACKLIST):
        return {'err' : '不支持的域名'}

            
    code = hashto62(url)
    key = base62_encode(code)

    sql = """
    INSERT INTO `taobb_urls` (`id`, `key`, `url`, `gmt_create`, `gmt_modified`) VALUES (:id, :key, :url, now(), now())
    ON DUPLICATE KEY UPDATE `gmt_modified` = now()
    """

    sp = SQLParams('named', 'format')
    sql, params = sp.format(sql, { 
        'id' : code,
        'key' : key,
        'url' : url,
    })

    if db.execute(sql, params) and kv.set(key, url):
        return {'key':key , 'err' : None}
    else:
        return {'err': '内部错误'}
コード例 #3
0
ファイル: taobb.py プロジェクト: fchypzero/tao.bb
def insert(db, code, url):
    key = base62_encode(code)

    # remove unused
    sql = """
    DELETE FROM `taobb_urls` WHERE id = :id and `access_time` + INTERVAL `access_count` + :ttl  DAY < NOW()
    """
    sp = SQLParams('named', 'format')
    sql, params = sp.format(sql, {
        'id': code,
        'ttl': 30
    })

    db.execute(sql, params)

    sql = """
    INSERT IGNORE INTO taobb_urls(  `id` ,  `key` ,  `url` , `access_time` ,  `gmt_create` ,  `gmt_modified` ) 
    VALUES (:id, :key, :url, now(),now(), now())
    """

    sp = SQLParams('named', 'format')
    sql, params = sp.format(sql, {
        'id': code,
        'key': key,
        'url': url,
    })

    if db.execute(sql, params):
        return key
    else:
        old_url = code_to_url(code, db)
        if old_url == url:
            return key
        else:
            return insert(db, code + 1, url)
コード例 #4
0
ファイル: utils.py プロジェクト: gleicon/imager
    def _save_and_create_uuid(self, fname, fbody, mime, transload_addr):
        uuid = yield self.redis.incr(self.IMAGER_UUID)
        b62 = base62_encode(uuid)

        fn = self._hash_by_name(fname, uuid)
        bdir = os.path.dirname(fn)

        try:
            if not os.path.exists(bdir):
                os.makedirs(bdir)
        except Exception, e:
            print e
コード例 #5
0
ファイル: redis_util.py プロジェクト: geekbuntu/uurl
def _update_url_data(redis_cli, url):
    k = URL_MASK % url
    u = redis_cli.get(k)
    if u == None:
        id = _get_uuid(redis_cli)
        uid = base62.base62_encode(id)
        redis_cli.set(k, uid)
        redis_cli.set(ENCODED_URL_MASK % uid, url)
        t = int(time.time())
        k = ENCODED_URL_DICT % uid
        redis_cli.hset(k, 'date_creation', t)
        redis_cli.hset(k, 'url', url)
        return uid
    return u
コード例 #6
0
ファイル: redis_util.py プロジェクト: geekbuntu/uurl
def _update_url_data(redis_cli, url):
    k = URL_MASK % url
    u = redis_cli.get(k)
    if u == None: 
        id = _get_uuid(redis_cli)
        uid = base62.base62_encode(id)
        redis_cli.set(k, uid)
        redis_cli.set(ENCODED_URL_MASK % uid, url)
        t = int(time.time())
        k = ENCODED_URL_DICT % uid
        redis_cli.hset(k, 'date_creation', t)
        redis_cli.hset(k, 'url', url)
        return uid
    return u
コード例 #7
0
    def post(self):
        url = self.request.get("url")
        custom_path = self.request.get("custom_path")
        if custom_path:
            exists = Link.get_by_id(custom_path)
            if exists:
                return "path already exists, choose another"
        else:
            id = Counter.increment()
            custom_path = base62.base62_encode(id)

        l = Link(url=url, custom_path=custom_path, id = custom_path)
        l.put()

        self.redirect("/" + custom_path + "/stats")
コード例 #8
0
def save(kv):
    key = None
    err = None

    url = request.forms['url']
    if url:
        url = url_uniq(url)
        if url:
            code = hashto62(url)

            key = base62_encode(code)

            if not kv.set(key, url):
                err = '内部错误'

        else:
            err = '请输入有效的 URL'

    else:
        err = '请输入URL'

    return {'key':key, 'err':err }
コード例 #9
0
ファイル: pasteit.py プロジェクト: gleicon/pasteit
def pasteit():
    ip = get_real_ip(request)
    r = throttle.check(ip)

    if r is False:
        abort(401, "Not authorized")

    codebody = request.POST['codebody']
    raw = request.POST.get('raw', None)
    if codebody is None:
        abort(500, 'Empty request')

    a = idgen.request()
    id = base62_encode(a)
    r = ds.save("pasteit-%s" % id, codebody)
    if r is False:
        abort(503, 'Internal error saving id %s (%d)' % (id, a))

    if raw is None:
        redirect("%s/%s" % (BASE_URL, id))
    else:
        return id
コード例 #10
0
ファイル: manage.py プロジェクト: ifduyue/shurl
def viewall():
    count = get_url_count()
    for i in xrange(1, count+1):
        view(base62_encode(i))
コード例 #11
0
ファイル: index.py プロジェクト: okamuuu/py-urlshortener
def post_index():
    url = request.forms.get('url')
    short = base62.base62_encode(int(time.time())) 
    result = db.find_and_modify({'url':url}, {'url':url,'short':short})
    redirect("/")
コード例 #12
0
 def test_base62(self):
     self.assertEqual(base62_encode(100), '1C')
     self.assertEqual(base62_encode(999999999), '15FTGf')
     self.assertEqual(base62_decode('dtvd3o'), 12345678910)
コード例 #13
0
ファイル: link.py プロジェクト: ebby/brokentv
 def path(self):
   if self.key().name():
     return self.key().name()
   return base62.base62_encode(self.id)
コード例 #14
0
 def test_base_encode(self):
    
     string = base62.base62_encode(12345);
     print(string)
     self.assertTrue(string)
     """ self.assertEqual(string, '')