예제 #1
0
 def existe_url_do_usuario(self, id):
     self.bd = Connection()
     self.results = self.bd.findOne(
         "SELECT count(id) FROM links WHERE id_usuario = {0}".format(id))
     if self.results:
         return True
     return False
예제 #2
0
 def id_existe(self, id):
     self.bd = Connection()
     self.query = ("SELECT * FROM links WHERE id = {0}".format(id))
     self.result = self.bd.findOne(self.query)
     if not self.result:
         return False
     return True
예제 #3
0
 def short_url_existe(self, codigo):
     self.short_url = self.dominio + codigo
     self.bd = Connection()
     self.query = ("SELECT * FROM links WHERE shorturl = '{0}'".format(
         self.short_url))
     self.result = self.bd.findOne(self.query)
     if not self.result:
         return False
     return True
예제 #4
0
    def registra_hits(self, codigo):
        try:
            self.bd = Connection()
            self.bd.executarSQL(
                "UPDATE links SET HITS = ((SELECT HITS FROM LINKS WHERE shorturl = '{0}') + 1) WHERE shorturl = '{1}'"
                .format(self.dominio + codigo, self.dominio + codigo))

        except:
            print("Erro ao incrementar hit!")
        finally:
            self.bd.cursor.close()
            self.bd.connection.close()
예제 #5
0
 def find_url_original(self, codigo):
     try:
         self.bd = Connection()
         self.urlOriginal = self.bd.findOne(
             "SELECT url FROM links WHERE shorturl = '{0}'".format(
                 self.dominio + codigo))
         return self.urlOriginal
     except:
         print("Erro ao pesquisar a URL original!")
     finally:
         self.bd.cursor.close()
         self.bd.connection.close()
예제 #6
0
    def existem_dados(self, id=None):
        self.bd = Connection()

        if id:
            self.query = f"SELECT count(id) FROM links WHERE usuario_id = {id}"
        else:
            self.query = "SELECT * FROM links"

        self.results = self.bd.findOne(self.query)
        if self.results and self.results[0][0] != 0:
            return True
        return False
예제 #7
0
    def get_stats_by_id(self, id):
        try:
            self.bd = Connection()
            self.query = ("SELECT * FROM links WHERE id = {0}".format(id))
            self.results = self.bd.findOne(self.query)

            if not self.results:
                return False
            return self.results
        except:
            print("Erro no get stats")
        finally:
            self.bd.cursor.close()
            self.bd.connection.close()
예제 #8
0
 def delete_url(self, id=None, id_usuario=None):
     try:
         if id:
             self.query = ("DELETE FROM links WHERE id = {0}".format(id))
         if id_usuario:
             self.query = ("DELETE FROM links WHERE usuario_id = {0}".
                           format(id_usuario))
         self.bd = Connection()
         self.bd.executarSQL(self.query)
     except:
         print("Erro no deletar registro")
     finally:
         self.bd.cursor.close()
         self.bd.connection.close()
예제 #9
0
 def user_existe(self, user=None, id=None):
     self.bd = Connection()
     if user:
         self.query = (
             "SELECT count(id_usuario) FROM users where usuario = '{0}'".
             format(user))
     if id:
         self.query = (
             "SELECT count(id_usuario) FROM users where id_usuario = {0}".
             format(id))
     self.result = self.bd.findOne(self.query)
     if self.result[0][0] == 1:
         return True
     return False
예제 #10
0
    def get_analitcs(self, id=None):
        try:
            if id:
                self.bd = Connection()
                self.query = ("select sum(hits), count(url) "
                              "from links L "
                              "join users U on L.usuario_id = U.id_usuario "
                              "where U.id_usuario = '{0}'".format(id))
                self.hitsUrls = self.bd.findOne(self.query)

                utils = Utils()
                self.query = ("select * "
                              "from links L "
                              "join users U on L.usuario_id = U.id_usuario "
                              "where U.id_usuario = '{0}' "
                              "order by hits desc "
                              "fetch first 10 rows only".format(id))
                self.top_hits = self.bd.findOne(self.query)
                self.top_hits = utils.gera_dict(self.top_hits)
                self.results = {
                    "urlCount": self.hitsUrls[0][1],
                    "hits": self.hitsUrls[0][0],
                    "topurls": self.top_hits
                }
            else:
                self.bd = Connection()
                self.query = "select sum(hits), count(url) from links"
                self.hits_count = self.bd.findOne(
                    "select sum(hits), count(url) from links")
                self.query = "select * from links order by hits desc fetch first 10 rows only"
                self.top_hits = self.bd.findOne(self.query)
                utils = Utils()
                self.top_hits = utils.gera_dict(self.top_hits)
                self.results = {
                    "urlCount": self.hits_count[0][1],
                    "hits": self.hits_count[0][0],
                    "topurls": self.top_hits
                }

            return self.results
        except:
            print("Erro ao gerar estatisticas do sistema")
        finally:
            self.bd.cursor.close()
            self.bd.connection.close()
예제 #11
0
    def gerar_codigo(self):
        try:
            self.bd = Connection()
            self.caracteres = string.digits + string.ascii_letters
            self.shorturl = self.dominio + ''.join(
                random.choices(self.caracteres, k=4))
            self.verifica_url_existe = self.bd.findOne(
                "SELECT * FROM links WHERE shorturl = '{0}'".format(
                    self.shorturl))

            if self.verifica_url_existe:
                Links.gerar_codigo(self)
            return self.shorturl

        except:
            print("Erro ao verificar as codigos no banco!")
        finally:
            self.bd.cursor.close()
            self.bd.connection.close()
예제 #12
0
    def cadastra_urls(self, URL, userid):
        self.shorturl = Links.gerar_codigo(self)
        self.garanta = Validacoes()
        URL = self.garanta.http_existe_na_url(URL)

        try:
            self.bd = Connection()
            self.query = (
                "INSERT INTO links (hits, url, shorturl, usuario_id) VALUES ({0}, '{1}', '{2}', {3})"
                .format(0, URL, self.shorturl, userid))
            self.bd.executarSQL(self.query)
            return self.bd.findOne(
                "SELECT * FROM links WHERE shorturl = '{0}'".format(
                    self.shorturl))
        except:
            print("Erro ao inserir as URLs no banco!")
        finally:
            self.bd.cursor.close()
            self.bd.connection.close()
예제 #13
0
class Validacoes:
    def __init__(self):
        self.dominio = "http://127.0.0.1:5000/urls/"

    def short_url_existe(self, codigo):
        self.short_url = self.dominio + codigo
        self.bd = Connection()
        self.query = ("SELECT * FROM links WHERE shorturl = '{0}'".format(
            self.short_url))
        self.result = self.bd.findOne(self.query)
        if not self.result:
            return False
        return True

    def id_existe(self, id):
        self.bd = Connection()
        self.query = ("SELECT * FROM links WHERE id = {0}".format(id))
        self.result = self.bd.findOne(self.query)
        if not self.result:
            return False
        return True

    def http_existe_na_url(self, URL):
        if URL[:7] == 'http://' or URL[:8] == 'https://':
            return URL
        return 'http://' + URL

    def existem_dados(self, id=None):
        self.bd = Connection()

        if id:
            self.query = f"SELECT count(id) FROM links WHERE usuario_id = {id}"
        else:
            self.query = "SELECT * FROM links"

        self.results = self.bd.findOne(self.query)
        if self.results and self.results[0][0] != 0:
            return True
        return False

    def user_existe(self, user=None, id=None):
        self.bd = Connection()
        if user:
            self.query = (
                "SELECT count(id_usuario) FROM users where usuario = '{0}'".
                format(user))
        if id:
            self.query = (
                "SELECT count(id_usuario) FROM users where id_usuario = {0}".
                format(id))
        self.result = self.bd.findOne(self.query)
        if self.result[0][0] == 1:
            return True
        return False

    def existe_url_do_usuario(self, id):
        self.bd = Connection()
        self.results = self.bd.findOne(
            "SELECT count(id) FROM links WHERE id_usuario = {0}".format(id))
        if self.results:
            return True
        return False