Ejemplo n.º 1
0
def shorten_url():
    data = request.json
    long_url = data["url"]
    shortener = Shortener(long_url)
    short_url = shortener.shorten_url()
    api_response = APIResponse(200, short_url)
    return jsonify(api_response.serialize())
Ejemplo n.º 2
0
 def find_shortname(self, url):
     shortener = Shortener()
     nb = 2
     while nb < 10:
         shortname = shortener.shorten(url, nb)
         o = self.get_by_key(shortname)
         if not o: return shortname
         nb = nb + 1
 def find_shortname(self, url):
   shortener = Shortener()
   nb = 2
   while nb < 10:
     shortname = shortener.shorten(url, nb)
     o = self.get_by_key(shortname)
     if not o: return shortname
     nb = nb + 1
Ejemplo n.º 4
0
        def handle(self, event):

            url = re.search(self.r_pattern, event.line).group(0)
            try:
                sub = reddit.submission(url='https://' + url)
            except praw.exceptions.ClientException:  # If the link is broken we should not do anything at all
                return
            sub_time = datetime.utcfromtimestamp(sub.created).strftime(
                '%Y/%m/%d@%H:%M'
            )  # converts from POSIX timestamp to human readable
            message = '[REDDIT] ' + sub.title
            if sub.is_self:
                message = message + \
                    ' (self.' + sub.subreddit.display_name + ')'
            else:
                message = message + ' to r/' + sub.subreddit.display_name
            if sub.author:
                author = 'u/' + sub.author.name
            else:
                author = '[deleted]'
            if sub.over_18:
                message = message + ' 05[NSFW]'
                # TODO implement per-channel settings db, and make this able to
                # kick
            message = (message + ' | ' + author + ' | ' + sub_time)
            self.say(event.channel,
                     message + ' | ' + Shortener.reddit_link(self, url))
class TestShortener(unittest.TestCase):

    url = "http://example.com"

    def setUp(self):
        self.shortener = Shortener()

    def test_init_with_clean_slate(self):
        self.assertEqual(self.shortener.id, 0)
        self.assertEqual(self.shortener.urls, {})

    def test_shorten_url_and_expand_token(self):
        token = self.shortener.shorten(TestShortener.url)
        expanded_url = self.shortener.expand(token)
        self.assertEqual(TestShortener.url, expanded_url)
        self.assertNotEqual(TestShortener.url, token)
        self.assertNotEqual(token, self.shortener.shorten("http://another.com"))

    def test_expand_nonexistant_token(self):
        self.assertIsNone(self.shortener.expand("herpderp"))
Ejemplo n.º 6
0
from flask import Flask, render_template, request, redirect
from shortener import Shortener

domain = input("If you have setup domain in HOSTS enter here >> ")
if not domain or domain == "":
    domain = "127.0.0.1"


app = Flask("lazycnt")

shortener = Shortener()

@app.route("/", methods=["POST", "GET"])
def main():
    if request.method == "POST":
        redirect_url = request.form["redirect_url"]
        generated_key = shortener.generate_key(redirect_url)
        if generated_key["error"]:
            return render_template("index.html", error=generated_key["error"])
        return render_template("index.html", domain=domain, key=generated_key["key"])
    return render_template("index.html")

@app.route("/<key>")
def redirect_to(key):
    url = shortener.get_url(key)
    if url:
        return redirect(url)
    return render_template("index.html", error="Tf is that key")

app.run("", "80")
shortener.cleanup()
Ejemplo n.º 7
0
import cStringIO
import base64
import sys
from shortener import Shortener
import add_qrtable
import time

from flask import Flask, redirect, request, Response
from database import DB

from artifactObjects.BHL import BHLObject

app = Flask(__name__)
db = DB()
bhl = BHLObject()
shortener = Shortener()


def json_resp(content):
    resp = Response(content, mimetype='application/json')
    resp.headers['Access-Control-Allow-Origin'] = '*'
    resp.headers['Access-Control-Allow-Method'] = 'GET, POST, OPTIONS'
    resp.headers['Access-Control-Allow-Headers'] = 'Content-Type'

    return resp


@app.route("/")
def home():
    return 'Redirect to front-end!'
 def setUp(self):
     self.shortener = Shortener()
Ejemplo n.º 9
0
from shortener import Shortener

if __name__ == '__main__':
    shortener = Shortener()

    print(shortener.shorten("google.com"))
    print(shortener.fetch(shortener.shorten("google.com")))

    hash = shortener.shorten("google.com")
    shortener.fetch(hash)
    shortener.fetch(hash)
    shortener.fetch(hash)
    shortener.fetch(hash)
    print(shortener.fetch(hash))
Ejemplo n.º 10
0
 def getShortener(self, url=None):
     shortener = Shortener()
     return shortener.genShortenerBitly(url=url)