22from flask import json , redirect
33from UrlGenerator import encode_url
44import time
5-
5+ import requests
66
77class model :
88
9+ def is_safe (self , key , url ):
10+ URL = 'https://sb-ssl.google.com/safebrowsing/api/lookup?client=Safe&key={key}&appver=1.5.2&pver=3.1&url={url}'
11+ response = requests .get (URL .format (key = key , url = url ))
12+
13+ #print response.text
14+ return response .text != 'malware'
15+
916 def get_url_stats (self , short_url ):
1017
1118 db = DB ()
@@ -26,30 +33,34 @@ def get_url_stats(self, short_url):
2633
2734 def make_short_url (self , url ):
2835
29- db = DB ()
36+ key = 'AIzaSyBwCHhPcVAdwZJH-hlTU4WM_sHe8-_SGYU'
37+ if (self .is_safe (key , url ) == True ):
3038
31- sql = '''SELECT id, short_url FROM links WHERE long_url=%s'''
32- query = db .query (sql , (url , ))
39+ db = DB ()
3340
34- link = query .fetchone ()
41+ sql = '''SELECT id, short_url FROM links WHERE long_url=%s'''
42+ query = db .query (sql , (url , ))
3543
36- if link is not None :
37- db .close ()
38- return self .format_result ("http://goo.rs/" + link ['short_url' ], 1 , "Links already exists" )
44+ link = query .fetchone ()
3945
40- else :
46+ if link is not None :
47+ db .close ()
48+ return self .format_result ("http://goo.rs/" + link ['short_url' ], 1 , "Links already exists" )
4149
42- sql = '''SELECT MAX(id) as id FROM links'''
43- query = db .query (sql )
44- id = query .fetchone ()
45- if id is not None :
46- short_url = encode_url (id ['id' ])
4750 else :
48- short_url = encode_url (1 )
49- sql = '''INSERT INTO links(id, long_url, short_url, clicks , u_id, created) VALUES (NULL, %s, %s, %s ,%s, %s )'''
50- db .query (sql , (url , short_url , 0 , 2 , time .strftime ('%Y-%m-%d %H:%M:%S' ) ))
51+
52+ sql = '''SELECT MAX(id) as id FROM links'''
53+ query = db .query (sql )
54+ id = query .fetchone ()
55+ if id is not None :
56+ short_url = encode_url (id ['id' ])
57+ else :
58+ short_url = encode_url (1 )
59+ sql = '''INSERT INTO links(id, long_url, short_url, clicks , u_id, created) VALUES (NULL, %s, %s, %s ,%s, %s )'''
60+ db .query (sql , (url , short_url , 0 , 2 , time .strftime ('%Y-%m-%d %H:%M:%S' ) ))
5161
5262 return self .format_result ("http://goo.rs/" + short_url , 1 , 'Url created' )
63+ return self .format_result ({}, 0 , "This url contains malware and can not be shortened." )
5364
5465
5566
@@ -59,7 +70,6 @@ def format_result(self, result, status, message):
5970
6071 def redirect (self , url ):
6172
62-
6373 db = DB ()
6474
6575 sql = '''SELECT id, long_url FROM links WHERE short_url=%s'''
@@ -73,9 +83,10 @@ def redirect(self, url):
7383 db .query (sql , (link ['id' ], ))
7484 db .close ()
7585
76-
77- return (link ['long_url' ])
78-
86+ key = 'AIzaSyBwCHhPcVAdwZJH-hlTU4WM_sHe8-_SGYU'
87+ if (self .is_safe (key , link ['long_url' ]) == True ):
88+ return (link ['long_url' ])
89+ return False
7990 return False
8091
8192
0 commit comments