remove short_url and add in-tree URLencoder #53

Merged
7415963987456321 merged 4 commits from 7415963987456321/URLencoder into master 2021-12-01 13:25:33 +01:00
2 changed files with 27 additions and 6 deletions

View File

@ -29,7 +29,6 @@ from magic import Magic
from mimetypes import guess_extension
import sys
import requests
from short_url import UrlEncoder
from validators import url as url_valid
from pathlib import Path
@ -91,8 +90,6 @@ Please install python-magic.""")
db = SQLAlchemy(app)
migrate = Migrate(app, db)
su = UrlEncoder(alphabet=app.config["URL_ALPHABET"], block_size=16)
class URL(db.Model):
id = db.Column(db.Integer, primary_key = True)
url = db.Column(db.UnicodeText, unique = True)
@ -101,7 +98,7 @@ class URL(db.Model):
self.url = url
def getname(self):
return su.enbase(self.id, 1)
return su.enbase(self.id)
def geturl(self):
return url_for("get", path=self.getname(), _external=True) + "\n"
@ -132,7 +129,7 @@ class File(db.Model):
self.addr = addr
def getname(self):
return u"{0}{1}".format(su.enbase(self.id, 1), self.ext)
return u"{0}{1}".format(su.enbase(self.id), self.ext)
def geturl(self):
n = self.getname()
@ -207,6 +204,31 @@ class File(db.Model):
db.session.commit()
return f
class UrlEncoder(object):
def __init__(self,alphabet, min_length):
self.alphabet = alphabet
self.min_length = min_length
def enbase(self, x):
n = len(self.alphabet)
str = ""
while x > 0:
str = (self.alphabet[int(x % n)]) + str
x = int(x // n)
padding = self.alphabet[0] * (self.min_length - len(str))
return '%s%s' % (padding, str)
def debase(self, x):
n = len(self.alphabet)
result = 0
for i, c in enumerate(reversed(x)):
result += self.alphabet.index(c) * (n ** i)
return result
su = UrlEncoder(alphabet=app.config["URL_ALPHABET"], min_length=1)
def fhost_url(scheme=None):
if not scheme:
return url_for(".fhost", _external=True).rstrip("/")

View File

@ -8,4 +8,3 @@ Flask_SQLAlchemy
validators
flask_migrate
python_magic
short_url