Skip to content

Commit 1d60fde

Browse files
committed
Merge branch 'master' into develop
2 parents 951e45d + 20a7b9c commit 1d60fde

File tree

4 files changed

+40
-21
lines changed

4 files changed

+40
-21
lines changed

controllers/__init__.pyc

-4 Bytes
Binary file not shown.

controllers/api.pyc

631 Bytes
Binary file not shown.

model.py

Lines changed: 32 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,17 @@
22
from flask import json, redirect
33
from UrlGenerator import encode_url
44
import time
5-
5+
import requests
66

77
class 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

templates/home/index.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
</div>
1717
</div>
1818

19+
<div class="sixteen columns" style="text-align: center">
20+
<span>
21+
<br /><br />
22+
Goo.rs has implemented Google Safe Browsing api. <br />Any url that is reported by Google Safe Browsing as malware website
23+
will not be redirected or shortened.
24+
</span>
25+
</div>
26+
1927
{% block js %}
2028
<script>
2129

0 commit comments

Comments
 (0)