Exemplo n.º 1
0
Arquivo: url.py Projeto: jonbloom/url
def get_short_link(url):
	if check_url(url) is None:
		g.db.cursor().execute('insert into urls values(null,?,0);',[url])
		id = check_url(url)[0]
		return b62.encode(id)
	else:
		id = g.db.cursor().execute('select id from urls where url = ?',[url]).fetchone()[0]
		return b62.encode(int(id))
Exemplo n.º 2
0
def get_short_link(url):
    if check_url(url) is None:
        g.db.cursor().execute('insert into urls values(null,?,0);', [url])
        id = check_url(url)[0]
        return b62.encode(id)
    else:
        id = g.db.cursor().execute('select id from urls where url = ?',
                                   [url]).fetchone()[0]
        return b62.encode(int(id))
Exemplo n.º 3
0
def new_index_func(new_index):
    if new_index is None:
        new_index = 1
    else:
        dictionary = {'stats', 'generate'}
        new_index += 1
        while base62.encode(new_index) in dictionary:
            new_index += 1
    return new_index, base62.encode(new_index)
Exemplo n.º 4
0
Arquivo: main7.py Projeto: cahn1/turl
def next_short(t):
    try:
        response = t.scan(Select='COUNT')
        count = r['Count']
        print('count: {}'.format(count))
        print(base62.encode(base_num + count + 1))
        return base62.encode(base_num + count + 1)
    except Exception:
        print('Table scan failed.')
        return None
Exemplo n.º 5
0
def test_basic():
    assert base62.encode(0) == '0'
    assert base62.encode(0, minlen=0) == '0'
    assert base62.encode(0, minlen=1) == '0'
    assert base62.encode(0, minlen=5) == '00000'
    assert base62.decode('0') == 0
    assert base62.decode('0000') == 0
    assert base62.decode('000001') == 1

    assert base62.encode(34441886726) == 'base62'
    assert base62.decode('base62') == 34441886726
Exemplo n.º 6
0
def encode(id_: str) -> str:
    if not id_:
        raise ValueError("Empty id for a tm_id")
    cleartext = id_
    hashed = hashlib.sha256(cleartext.encode("utf-8")).hexdigest()
    truncated = int(hashed, base=16) >> (HASH_LENGTH_BITS - IDENTIFIER_LENGTH_BITS)
    return base62.encode(truncated)
Exemplo n.º 7
0
 async def create_dice(cls,
                       character_id: int,
                       episode_id: int,
                       dice_type: DiceType,
                       expression: str,
                       detail: str,
                       result: DiceValue_T,
                       reason: Optional[str] = '') -> Dice:
     created = int(time.time())
     url_token = base62.encode(get_id())
     values = ObjectDict(
         url_token=url_token,
         character_id=character_id,
         episode_id=episode_id,
         type=int(dice_type),
         expression=expression,
         detail=detail,
         reason=reason if reason else '',
         result=result,
         created=created,
     )
     query = cls.t.insert().values(values)
     result = await table.execute(query)
     values.id = result.lastrowid
     dice = _format_dice(values)
     return dice
Exemplo n.º 8
0
def submitUrl():
    longURL = request.form.get("originalURL")

    returned_URL = db.session.query(URL).filter(
        URL.long_URL == longURL).first()
    #check if long url in db
    if returned_URL == None:

        # BIG_NUMBER=100000000000000 # to make the urls longer

        URL_object = URL(long_URL=longURL)  # add longURL to database
        db.session.add(URL_object)  # add to session
        db.session.commit()  # commit to database

        short_URL = base62.encode(URL_object.id)  # create short url

        URL_object.short_URL = short_URL  # update the recently created url object so that it now has a shortUrl
        db.session.commit()  # commit to teh url database

        short_URL = URL_object.short_URL

    else:
        short_URL = returned_URL.short_URL

    return render_template("index.html",
                           shortURL=f"http://localhost:5000/{short_URL}",
                           originalURL=longURL)
Exemplo n.º 9
0
def set_url(url_string, request):
	encoded = urllib.quote_plus(urllib.unquote(url_string))

	url = Url.all().filter('url =', encoded).get()

	if url is not None:
		new_id_num = url.key().id()
	else:
		handmade_key = db.Key.from_path('Url', 1)
		new_ids = db.allocate_ids(handmade_key, 1)

		new_id_num = int(new_ids[0])
	
		new_key = db.Key.from_path('Url', new_id_num)
		url = Url(key = new_key)
		url.url = encoded
		url.put()

	__hit(url, request)

	code = base62.encode(new_id_num)

	if memcache.get('cacheurls:%s' % code) is None:
		memcache.add('cacheurls:%s' % code, url, 60*60*12)

	return code
Exemplo n.º 10
0
    def fit(self):
        ds = iter(self.dataset)

        for epoch in range(self.epochs):
            for step in range(
                    10):  # NOTE: The range here limits the steps per epoch
                input_image, target = next(ds)
                self.train_step(input_image, target)
                # input_image, target, meta = next(ds)
                # self.train_step(input_image, target, meta)
                self.log.info('Step %d', step + 1)

            # Save every 20 epochs if so desired
            if (epoch + 1) % 20 == 0 and not self.save_path is None:
                self.log.info('Reached epoch %s; saving model', epoch + 1)
                self.save()
            else:
                self.log.info('Reached epoch %s of %s', epoch + 1, self.epochs)

        if self.save_path is None:
            name = 'model-' + encode(int(time())) + '.pickle'

            self.log.info('Reached end of training, storing to "./%s"', name)
            with open(path.join('./', name, 'wb')) as f:
                pickle.dump((self.generator.get_weights(),
                             self.discriminator.get_weights()), f)
        else:
            self.save()
            self.log.info('Reached end of training')
Exemplo n.º 11
0
def test_basic():
    assert base62.encode(0) == "0"
    assert base62.encode(0, minlen=0) == "0"
    assert base62.encode(0, minlen=1) == "0"
    assert base62.encode(0, minlen=5) == "00000"
    assert base62.decode("0") == 0
    assert base62.decode("0000") == 0
    assert base62.decode("000001") == 1

    assert base62.encode(34441886726) == "base62"
    assert base62.decode("base62") == 34441886726

    # NOTE: For backward compatibility. When I first wrote this module in PHP,
    # I used to use the `0z` prefix to denote a base62 encoded string (similar
    # to `0x` for hexadecimal strings).
    assert base62.decode("0zbase62") == 34441886726
Exemplo n.º 12
0
def test_basic():
    assert base62.encode(0) == '0'
    assert base62.encode(0, minlen=0) == '0'
    assert base62.encode(0, minlen=1) == '0'
    assert base62.encode(0, minlen=5) == '00000'
    assert base62.decode('0') == 0
    assert base62.decode('0000') == 0
    assert base62.decode('000001') == 1

    assert base62.encode(34441886726) == 'base62'
    assert base62.decode('base62') == 34441886726

    # NOTE: For backward compatibility. When I first wrote this module in PHP,
    # I used to use the `0z` prefix to denote a base62 encoded string (similar
    # to `0x` for hexadecimal strings).
    assert base62.decode('0zbase62') == 34441886726
Exemplo n.º 13
0
 def shorten_link(cls, url, user, url_hash=None):
     shortened_link = cls(url=url, owner=user, hash=url_hash)
     shortened_link.save()
     if url_hash is None:
         shortened_link.hash = base62.encode(shortened_link.pk)
     shortened_link.save()
     return shortened_link
Exemplo n.º 14
0
 async def create_message(cls,
                          campaign_id: int,
                          episode_id: int,
                          character_id: int,
                          message_type: MessageType,
                          content: dict,
                          is_gm: bool,
                          created: Optional[int] = None) -> Message:
     url_token = base62.encode(get_id())
     if not created:
         created = int(time.time())
     values = ObjectDict(
         url_token=url_token,
         campaign_id=campaign_id,
         episode_id=episode_id,
         character_id=character_id,
         type=int(message_type),
         is_removed=0,
         is_gm=int(is_gm),
         content=content,
         created=created,
         updated=created,
     )
     query = cls.t.insert().values(values)
     result = await table.execute(query)
     values.id = result.lastrowid
     message = _format_message(values)
     return message
Exemplo n.º 15
0
def get_short_url(url):
    with psycopg2.connect(DATABASE_URL) as conn:
        c = conn.cursor()
        c.execute("SELECT id FROM urls WHERE url = %s", (url, ))
        id_ = c.fetchone()
    if id_:
        id_ = base62.encode(id_[0])
    return id_
Exemplo n.º 16
0
    def save(self):
        '''Saves the trained models' weights to file'''
        name = encode(int(time()))[2:] + '.pickle'

        with open(path.join(self.save_path, name), 'wb') as f:
            pickle.dump((self.generator.get_weights(), self.discriminator.get_weights()), f)
        
        self.log.info('Saved model to "%s"', name)
Exemplo n.º 17
0
def check_set_key(url_key):
    used = Tinyurl.query.filter_by(url_key=url_key).first()
    if not used:
        return url_key
    while used:
        url_key = encode(int(used.id), charset=app.config['BASE62_CHARSET'])
        used = Tinyurl.query.filter_by(url_key=url_key).first()
    return url_key
Exemplo n.º 18
0
 def decode(self, ctext: T) -> Optional[U]:
     """
     Performs Base62 decoding
     """
     try:
         return base62.encode(ctext).decode("utf-8")
     except Exception:
         return None
Exemplo n.º 19
0
def test_basic_inverted():
    kwargs = {'charset': base62.CHARSET_INVERTED}

    assert base62.encode(0, **kwargs) == '0'
    assert base62.encode(0, minlen=0, **kwargs) == '0'
    assert base62.encode(0, minlen=1, **kwargs) == '0'
    assert base62.encode(0, minlen=5, **kwargs) == '00000'
    assert base62.decode('0', **kwargs) == 0
    assert base62.decode('0000', **kwargs) == 0
    assert base62.decode('000001', **kwargs) == 1

    assert base62.encode(10231951886, **kwargs) == 'base62'
    assert base62.decode('base62', **kwargs) == 10231951886

    # NOTE: For backward compatibility. When I first wrote this module in PHP,
    # I used to use the `0z` prefix to denote a base62 encoded string (similar
    # to `0x` for hexadecimal strings).
    assert base62.decode('0zbase62', **kwargs) == 10231951886
Exemplo n.º 20
0
def post_url():
    data = request.get_json()
    url = url_fix(data['url'])
    slug = r.get(url_prefix + url)
    if not slug:
        slug = base62.encode(r.incr('next_url_id'))
        r.hmset(slug_prefix + slug, {'url': url, 'visited': 0})
        r.set(url_prefix + url, slug)
    return jsonify({'url': url, 'slug': slug})
Exemplo n.º 21
0
 def from_uuid(cls, u, length=20):
     """
     Derive an Okta UID from the given UUID, padding the left of the string
     ID with zeroes.
     """
     b = int.from_bytes(u.bytes_le, byteorder='little')
     d = base62.encode(b)
     padded = d.zfill(length)
     return cls(padded)
Exemplo n.º 22
0
def test_basic_inverted():
    kwargs = {"charset": base62.CHARSET_INVERTED}

    assert base62.encode(0, **kwargs) == "0"
    assert base62.encode(0, minlen=0, **kwargs) == "0"
    assert base62.encode(0, minlen=1, **kwargs) == "0"
    assert base62.encode(0, minlen=5, **kwargs) == "00000"
    assert base62.decode("0", **kwargs) == 0
    assert base62.decode("0000", **kwargs) == 0
    assert base62.decode("000001", **kwargs) == 1

    assert base62.encode(10231951886, **kwargs) == "base62"
    assert base62.decode("base62", **kwargs) == 10231951886

    # NOTE: For backward compatibility. When I first wrote this module in PHP,
    # I used to use the `0z` prefix to denote a base62 encoded string (similar
    # to `0x` for hexadecimal strings).
    assert base62.decode("0zbase62", **kwargs) == 10231951886
Exemplo n.º 23
0
    def serialize(self):
        payload = serialize(self)

        for id_field in ("id", "user_id", "request_id", "response_id", "corpus_id"):
            if hasattr(self, id_field) and getattr(self, id_field) != None:
                value = uuid.UUID(getattr(self, id_field)).int
                payload[id_field] = base62.encode(value)

        return payload
 def encode(self, state):
     player, b = self.boardify(state)
     board_str = player + str(b)
     board_ternary = board_str.translate(
         str.maketrans({
             '.': '0',
             'x': '1',
             'o': '2'
         }))
     board_num = int(board_ternary, 3)
     return base62.encode(board_num)
Exemplo n.º 25
0
def mix_handler(environ, start_response):
    if environ['REQUEST_METHOD'] == 'POST':
        start_response('200 OK', [('Content-Type', 'text/plain')])
        data = environ['wsgi.input'].read(int(
            environ['CONTENT_LENGTH']))[22:].decode('base64')
        fn = encode(uuid4().int) + '.png'
        with open('../public/spreads/' + fn, 'wb') as f:
            f.write(data)
        yield fn
    else:
        start_response('404 Not Found', [('Content-Type', 'text/html')])
        yield _404
Exemplo n.º 26
0
 def short_url(cls,url, title, description,direct=False, user_id=None):
     u = cls(parent = urls_key(),
             url = url,
             title = title,
             description = description,
             direct=direct)
     u.put()
     u.short = base62.encode(u.key.id())
     if user_id :
         u.user_id = user_id
     u.put()
     return u
Exemplo n.º 27
0
def upload(request):
    if request.method == 'POST':
        form = FileHandlerForm(request.POST, request.FILES)
        if form.is_valid():
            temp = form.save(commit=False)
            temp.bound_advert = Advertisement.objects.get(
                id=randint(1,
                           Advertisement.objects.latest('id').id))
            temp.save()
            return HttpResponseRedirect('/uploaded/%s' % encode(temp.id))
    else:
        form = FileHandlerForm()
    return render(request, 'FileHandler/index.html', {'form': form})
Exemplo n.º 28
0
Arquivo: main.py Projeto: cahn1/turl
def next_short(t):
  try:
    response = t.scan(
      Select='COUNT'
    )
    # Current total number of items
    count = response['Count']
    print('count: {}'.format(count))
    logger.info('Total Item Count: {}'.format(count))
    # return next number encoded by base62. This will be the next short_url
    return base62.encode(base_num+count+1)
  except Exception:
    print('Table scan failed.')
    return None
Exemplo n.º 29
0
def _format_multiple(qset):
    tm = _convert_time(qset[0].start_time)
    if tm.date() == now.date():
        msgs[0] = u'At %s\n' % tm.strftime('%-I:%M')
    else:
        msgs[0] = u'%s at %s\n' % (tm.strftime('%A'), tm.strftime('%-I:%M'))
    msgs[0] += u' (text shortcode for more info):'

    for s in qset:
        line = u'\n%s: \n%s (%s)\n' % (base62.encode(s.id), s.title, s.location.name)
        if len(msgs[-1] + line) <= 150:
            msgs[-1] += line
        else:
            msgs.append(line)

    return msgs
Exemplo n.º 30
0
    def perform_create(self, serializer):
        a = Sorten.objects.last()
        if a is None:
            merge = 1
        else:
            merge = a.id + 1
        merge = base62.encode(merge)

        if self.request.user.is_anonymous:
            c = None
        else:
            c = self.request.user

        serializer.save(
            owner=c,
            shorturl=merge,
        )
Exemplo n.º 31
0
def encode_ran_key(long_url):
    url_key = redis_client.get(long_url)
    if not url_key:
        tinyurl = Tinyurl(long_url=long_url)
        db.session.add(tinyurl)
        db.session.commit()
        url_key = encode(int(tinyurl.id), charset=app.config['BASE62_CHARSET'])
        tinyurl.url_key = check_set_key(url_key)
        db.session.commit()
        redis_client.set(long_url,
                         tinyurl.url_key,
                         ex=app.config['DB_EXPIRE_TIME'],
                         nx=True)
    else:
        url_key = url_key.decode('utf8')

    return '{}/{}'.format(app.config['SERVER_URL_PREFIX'], url_key)
Exemplo n.º 32
0
def index(request):
    if request.method == 'POST':  # обрабатываем POST запрос, т.е. добавления url
        raw_data = UrlForm(request.POST)
        if raw_data.is_valid():
            data = raw_data.cleaned_data

            timestamp = timezone.now()  # отметка времени
            original_url = data['original_url']  # получаем введенный в форму url
            url_add = UrlList.objects.create(original_url=original_url, date_add=timestamp, clicks=0)  # пишем в базу введенный url, время добавления и количество кликов, которые пока равны нулю

            request_url = request.get_raw_uri()  # получаем url запроса
            short_url = '{0}?s={1}'.format(request_url, encode(url_add.id))  # формируем короткий url из url запроса и закодированного id записи
            url_add.shorten_url = short_url  # добавляем короткий url в базу
            url_add.save()  # сохраняем

            return redirect(index)  # добавление url в базу окончена, перенаправляем на заглавную страницу

        # если введенный url прошел валидацию на форме html, но не прошел в обработке POST запроса, то выводим сообщение пользователю о некорректном url
        urls = UrlList.objects.filter()
        context = {'url_form': UrlForm(), 'urls': urls, 'message': 'You pasted a bad URL'}
        return render(request, 'form.html', context)
    else:  # обрабатываем GET запрос
        if request.GET.get('s'):  # если в GET запросе существет ключ s, значит пользователь нажал на короткий url - обрабатываем его
            s = request.GET.get('s')  # получаем закодированный id
            '''
            Если пользователь вручную введет GET запрос в адресной строке браузера с произвольным 's',
            то приложение может обратиться к базе с несуществующим id, что вызовет exception.
            Ловим такие обращения с помощью try-except и выводим соответствующее сообщение.
            '''
            try:
                url_id = decode(s)  # декодируем id
                url = UrlList.objects.get(id=url_id)  # получаем объект url из базы

                timestamp = timezone.now()  # отметка времени
                url.date_click = timestamp  # дата и время клика по короткому url
                url.clicks += 1  # увеличиваем счетчик кликов по короткому url
                url.save()  # сохраняем изменения в базу
            except Exception:  # ловим ошибки обращения к несуществующему id в базе
                request_url = request.get_raw_uri()  # получаем url запроса
                return HttpResponse('Page "{0}" does not exist.'.format(request_url))  # возвращаем пользователю сообщение, что такого url нет
            return redirect(url.original_url)  # выносим редирект на оригинальный url из try блока, т.к. в нем не считаются клики и timestamps
        else:  # если в GET запросе нет ключа s, значит пользователь заходит на заглавную страницу
            urls = UrlList.objects.filter()  # получаем все записи в базе
            context = {'url_form': UrlForm(), 'urls': urls}
            return render(request, 'form.html', context)  # рисуем пользователю заглавную страницу
Exemplo n.º 33
0
    def create_pfhl_order(self, data):
        stp_p = float(data['price'])
        sym = data['symbol']
        pside = data['positionSide']

        for an in data['vas']:
            pp = brkrs.sym_infos[sym]['pp']
            qp = brkrs.sym_infos[sym]['qp']
            close_rate = 0.5
            pos_amt = 0
            brkrs.fetch_postion(an)
            for pos in brkrs.all_valid_pos[an]:
                if pos['symbol'] == sym and pos['positionSide'] == pside:
                    pos_amt = float(pos['positionAmt'])
                    entry_p = float(pos['entryPrice'])
            if not pos_amt:
                Lgr.log('bnews', f"账户 {an} {sym} 没有 {pside} 仓位")
                continue
            if pside == 'LONG':
                price = round(
                    abs(entry_p - stp_p) + entry_p *
                    (1 + Settings['slippage']), pp)
            else:
                price = round(
                    entry_p * (1 - Settings['slippage']) -
                    abs(entry_p - stp_p), pp)
            qty = round(abs(pos_amt) * close_rate, qp)
            qty = max(qty, 1 / pow(10, qp))
            rstr = base62.encode(int(datetime.now().timestamp()))
            param = {
                'symbol': sym,
                'side': data['side'],
                'positionSide': pside,
                'price': price,
                'type': 'LIMIT',
                'timeInForce': 'GTC',
                'quantity': qty,
                'newClientOrderId': f"{app}_{data['op']}_{rstr}",
            }
            res = brkrs.place_order(an, param)
            if res['orderId']:
                op_ch = get_op(data['op'])
                Lgr.log(data['op'], f"账户:{an} {op_ch}: {param}")
            else:
                Lgr.log('ERROR', 'place order has error')
Exemplo n.º 34
0
def _format_multiple(qset):
    msgs = ['No events.\n']
    now = timezone.now()
    tm = _convert_time(qset[0].start_time)
    if tm.date() == now.date():
        msgs[0] = u'At %s\n' % tm.strftime('%-I:%M')
    else:
        msgs[0] = u'%s at %s\n' % (tm.strftime('%A'), tm.strftime('%-I:%M'))
    msgs[0] += u' (text shortcode for more info):'

    for s in qset:
        line = u'\n%s: \n%s (%s)\n' % (base62.encode(s.id), s.title, s.location.name)
        if len(msgs[-1] + line) <= 150:
            msgs[-1] += line
        else:
            msgs.append(line)

    return msgs
Exemplo n.º 35
0
def next_id():
    '''Get next short url id.

    We do that by incrementing the global counter and then base62 encoding the
    current count.
    '''

    id = [0]

    # Update counter in transaction
    def txn():
        counter = get_counter()
        counter.count += 1
        counter.put()
        id[0] = counter.count

    db.run_in_transaction(txn)

    return base62.encode(id[0])
Exemplo n.º 36
0
def mainloop():
    global button
    # just wait for a key press, ESC, escapes
    k = -1
    while k!=27:	
        images = repeat()
        if k!=-1 or button:
            images = repeat()
            click()
            name = saveAs
            if(not name):
                # generate a short code based on time
                name = str(base62.encode(int(time.time())-1392050000))
            save(images,name)
            convert(name+".gif", dir="images/%s"%(name) )
            cp(name)                     # TRY and copy the file to rvip.co
            button = False
        k = cv2.waitKey(1)	# -1 if nothing pressed
    bye()
Exemplo n.º 37
0
def decod(text):
    #Try if base32
    try:
        a = base64.b32decode(text)
        print("[+] Seems to be base 32")
        print(a)
    except:
        print("[-] Base 32 tested")
    #try if base64
    try:
        a = base64.b64decode(text)
        print("[+] Seems to be base 64")
        print(a)
    except:
        print("[-] Base 64 tested")
    #Try if base85 or ascii 85
    try:
        a = base64.a85decode(text)
        print("[+] Seems to be Base85")
        print(a)
    except:
        print("[-] Base 85 tested")
    #Try if base58
    try:
        a = base58.b58decode(text)
        print("[+] Seems to be base 58")
        print(a)
    except:
        print("[-] Base 58 tested")
    #Try if base62
    try:
        a = base62.encode(int(text))
        print("[+] Seems to be base 62")
        print(a)
    except:
        print("[-] Base 62 tested")
    #Try if base16
    try:
        a = bytearray.fromhex(text).decode()
        print("[+] Seems to be base 16")
        print(a)
    except:
        print("[-] Hex tested")
Exemplo n.º 38
0
def mainloop():
    global button
    # just wait for a key press, ESC, escapes
    k = -1
    while k != 27:
        images = repeat()
        if k != -1 or button:
            images = repeat()
            click()
            name = saveAs
            if (not name):
                # generate a short code based on time
                name = str(base62.encode(int(time.time()) - 1392050000))
            save(images, name)
            convert(name + ".gif", dir="images/%s" % (name))
            cp(name)  # TRY and copy the file to rvip.co
            button = False
        k = cv2.waitKey(1)  # -1 if nothing pressed
    bye()
Exemplo n.º 39
0
 async def create_member(cls, name: str, email: str, passhash: str,
                         headline: str='', avatar: str='') -> Member:
     created = int(time.time())
     url_token = base62.encode(get_id())
     values = ObjectDict(
         url_token=url_token,
         name=name,
         email=email,
         passhash=passhash,
         headline=headline,
         avatar=avatar,
         created=created,
         updated=created,
     )
     query = cls.t.insert().values(values)
     result = await table.execute(query)
     values.id = result.lastrowid
     member = _format_member(values)
     return member
Exemplo n.º 40
0
def upload_file():
    upload_id = 1
    upload = mongo.db.uploads

    upload_data = upload.find().sort("_id", -1).limit(1)
    for a in upload_data:
        upload_id = a["_id"] + upload_id

    file = request.files['uploadedFile']

    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        file.save(
            os.path.join(os.getcwd() + app.config['UPLOAD_FOLDER'], filename))

        ipfs_api = ipfsapi.connect(app.config['IPFS_HOST'],
                                   app.config['IPFS_PORT'])
        result = ipfs_api.add(
            os.path.join(os.getcwd() + app.config['UPLOAD_FOLDER'], filename))

        #try:
        new_upload = upload.insert_one({
            '_id': upload_id,
            'filename': result['Name'],
            'ipfs_hash': result['Hash'],
            'user_id': current_user.get_id(),
            'short_url': None
        })
        # new_upload = Upload(result['Name'], result['Hash'], artist=current_user.id)
        print(new_upload)

        new_upload_object = upload.find_one({'filename': filename})
        shortened = base62.encode(new_upload_object['_id'])
        upload.update_one({'filename': filename},
                          {'$set': {
                              'short_url': shortened
                          }})

        flash('Upload Complete', 'success')
        #except:
        #flash('That hash already exists, passing.', 'danger')
    return redirect(url_for('upload'))
Exemplo n.º 41
0
def weibo_url(uid, mid):
    s = ''
    while mid:
        s = base62.encode(mid % N) + s
        mid /= N
    return u'http://weibo.com/{0}/{1}'.format(uid, s)
Exemplo n.º 42
0
 def order_string(self):
     return 'O:{}'.format(base62.encode(self.num))
Exemplo n.º 43
0
 def sms_shortcode(self):
     return base62.encode(self.id)
Exemplo n.º 44
0
def test_encodebytes(b, i):
    assert base62.encodebytes(b) == base62.encode(i)
Exemplo n.º 45
0
 def uuid_to_b62(value):
     return base62.encode(uuid.UUID(value).int)
Exemplo n.º 46
0
def next_id():
    global link_count

    with count_lock:
        link_count += 1
        return base62.encode(link_count)
Exemplo n.º 47
0
def test_basic():
    assert base62.encode(0) == '0'
    assert base62.decode('0') == 0

    assert base62.encode(34441886726) == 'base62'
    assert base62.decode('base62') == 34441886726
Exemplo n.º 48
0
def translate(text, mode, source, target, client='x'):

    if len(text) == 0:
        raise HTTPException('Text cannot be empty.', 400)

    if len(text) > MAX_TEXT_LENGTH:
        raise HTTPException('Text too long.', 413)

    if source == target:
        return dict(
            id=None,
            id_b62=None,
            intermediate_text=None,
            translated_text=text)

    if source not in VALID_LANGUAGES.keys():
        raise HTTPException('Invalid source language.', 400)
    if target not in VALID_LANGUAGES.keys():
        raise HTTPException('Invalid target language.', 400)

    original_text_hash = nilsimsa.Nilsimsa(text.encode('utf-8')).hexdigest()
    user_agent = request.headers.get('User-Agent')

    access_log = TranslationAccessLog.insert(
        commit=False,
        user_id=current_user.id if not current_user.is_anonymous() else None,
        user_agent=user_agent,
        remote_address=get_remote_address(request),
    )

    treq = TranslationRequest.fetch(
        original_text_hash=original_text_hash,
        source=source, target=target)

    if treq == None:
        treq = TranslationRequest.insert(
            commit=False,
            user_id=None,
            source=source,
            target=target,
            original_text=text,
            original_text_hash=original_text_hash,
        )

    tresp = TranslationResponse.fetch(
        original_text_hash=original_text_hash,
        source=source, target=target, mode=mode)

    if tresp == None:

        translated_raw = None
        translated_text = None
        intermediate_raw = None
        intermediate_text = None

        # NOTE: The following may be time consuming operations
        # FIXME: Refactor this code. Looks crappy.
        if mode == '1':
            if client == 't':
                translated_raw = __translate__(text, source, target, client, user_agent)
                translated_text = ' '.join(map(lambda x: x[0], translated_raw[0]))
            else:
                translated_text = __translate__(text, source, target, client, user_agent)
            
        elif mode == '2':
            if client == 't':
                intermediate_raw = __translate__(text, source, 'ja', client, user_agent)
                intermediate_text = ' '.join(map(lambda x: x[0], intermediate_raw[0]))
                translated_raw = __translate__(intermediate_text, 'ja', target, client, user_agent)
                translated_text = ' '.join(map(lambda x: x[0], translated_raw[0]))

            else:
                intermediate_text = __translate__(text, source, 'ja', client, user_agent)
                translated_text = __translate__(intermediate_text, 'ja', target, client, user_agent)
            
        else:
            return HTTPException('Invalid translation mode.', 400)

        tresp = TranslationResponse.insert(
            commit=False,
            request_id=treq.id,
            source=source,
            target=target,
            mode=mode,
            original_text_hash=original_text_hash,
            intermediate_text=intermediate_text,
            intermediate_raw=intermediate_raw,
            translated_text=translated_text,
            translated_raw=translated_raw,
        )

    try:
        db.session.commit()
    except Exception as e:
        logger.exception(e)
        db.session.rollback()

    return dict(
        id=base62.encode(uuid.UUID(tresp.id).int),
        request_id=base62.encode(uuid.UUID(treq.id).int),
        intermediate_text=tresp.intermediate_text,
        intermediate_raw=tresp.intermediate_raw,
        translated_text=tresp.translated_text,
        translated_raw=tresp.translated_raw,
    )
Exemplo n.º 49
0
 def base62_sha1(s):
     digest = hashlib.sha1(s.encode('utf-8')).digest()
     return ''.join(base62.encode(v % 62) for v in digest[:8])