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))
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))
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)
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
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
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)
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
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)
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
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')
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
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
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
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
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_
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)
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
def decode(self, ctext: T) -> Optional[U]: """ Performs Base62 decoding """ try: return base62.encode(ctext).decode("utf-8") except Exception: return None
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
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})
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)
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
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)
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
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
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})
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
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
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, )
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)
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) # рисуем пользователю заглавную страницу
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')
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
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])
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()
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")
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()
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
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'))
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)
def order_string(self): return 'O:{}'.format(base62.encode(self.num))
def sms_shortcode(self): return base62.encode(self.id)
def test_encodebytes(b, i): assert base62.encodebytes(b) == base62.encode(i)
def uuid_to_b62(value): return base62.encode(uuid.UUID(value).int)
def next_id(): global link_count with count_lock: link_count += 1 return base62.encode(link_count)
def test_basic(): assert base62.encode(0) == '0' assert base62.decode('0') == 0 assert base62.encode(34441886726) == 'base62' assert base62.decode('base62') == 34441886726
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, )
def base62_sha1(s): digest = hashlib.sha1(s.encode('utf-8')).digest() return ''.join(base62.encode(v % 62) for v in digest[:8])