-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathshortn.py
71 lines (61 loc) · 2.56 KB
/
shortn.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env python
import urllib
import urllib2
import json
import argparse
api = {
'bitly' : 'https://api-ssl.bitly.com/v3/shorten?format=json&login=hzlzh&apiKey=R_e8bcc43adaa5f818cc5d8a544a17d27d&longUrl=',
'jmp' : 'http://api.j.mp/v3//shorten?format=json&login=hzlzh&apiKey=R_e8bcc43adaa5f818cc5d8a544a17d27d&longUrl=',
'tcn' : 'https://api.weibo.com/2/short_url/shorten.json?access_token=2.00WSLtpB0GRHJ9745670860ceNWWiC&source=5786724301&url_long=',
'isgd' : 'http://is.gd/create.php?format=json&url=',
'vgd' : 'http://v.gd/create.php?format=json&url=',
'tinycc' : 'http://tiny.cc/?c=rest_api&m=shorten&version=2.0.3&format=json&shortUrl=&login=hzlzh&apiKey=9f175aa2-ff30-4df5-b958-1346c59b4884&longUrl='
}
def getLink(service,url):
terms = urllib.quote_plus(url.strip())
url = service + terms
data = urllib2.urlopen(url).read()
return data
def main():
parser = argparse.ArgumentParser(description="Shorten URL using the following services: bit.ly, j.mp, t.cn, is.gd, v.gd, tiny.cc.")
parser.add_argument("url",
help="Enter the URL to shorten here")
parser.add_argument("-j", "--jmp",
help="use j.mp to shorten url", action="store_true")
parser.add_argument("-t", "--tcn",
help="use t.cn to shorten url", action="store_true")
parser.add_argument("-i", "--isgd",
help="use is.gd to shorten url", action="store_true")
parser.add_argument("-v", "--vgd",
help="use v.gd to shorten url", action="store_true")
parser.add_argument("-c", "--tinycc",
help="use tiny.cc to shorten url", action="store_true")
parser.add_argument("-V", "--version", action='version', version='%(prog)s 1.0')
args = parser.parse_args()
url = args.url
if (('http' in url) == False):
url = 'http://'+url
if args.jmp:
service = api['jmp']
output = json.loads(getLink(service,url))["data"]["url"]
elif args.tcn:
service = api['tcn']
output = json.loads(getLink(service,url))["urls"][0]["url_short"]
elif args.isgd:
service = api['isgd']
output = json.loads(getLink(service,url))["shorturl"]
elif args.vgd:
service = api['vgd']
output = json.loads(getLink(service,url))["shorturl"]
elif args.tinycc:
service = api['tinycc']
output = json.loads(getLink(service,url))["results"]["short_url"]
else:
service = api['bitly']
output = json.loads(getLink(service,url))["data"]["url"]
if (output != ''):
print output
else:
print 'Try again!'
if __name__ == '__main__':
main()