summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xfhost.py32
-rw-r--r--requirements.txt1
2 files changed, 27 insertions, 6 deletions
diff --git a/fhost.py b/fhost.py
index 8644ade..c70ed17 100755
--- a/fhost.py
+++ b/fhost.py
@@ -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("/")
diff --git a/requirements.txt b/requirements.txt
index aa059d9..8dbfe72 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -8,4 +8,3 @@ Flask_SQLAlchemy
validators
flask_migrate
python_magic
-short_url