import
requests
import
os
def
create_directory(dirname):
try
:
os.stat(dirname)
except
:
os.mkdir(dirname)
def
show(obj):
for
i
in
range
(
len
(obj)):
print
(
str
(i)
+
': '
+
str
(obj[i]))
def
auth():
ask_auth
=
input
("Do you want to download gists
from
your account
?
Type
'yes'
or
'no'
: ")
if
(ask_auth
=
=
"yes"
):
user
=
input
(
"Enter your username: "
)
password
=
input
(
"Enter your password: "
)
, auth
=
(user, password))
elif
(ask_auth
=
=
"no"
):
user
=
input
(
"Enter username: "
)
+
user
+
'/gists'
)
return
[ask_auth, user, request]
def
load(request):
output
=
request.text.split(
","
)
gist_urls
=
[]
files
=
[]
for
item
in
output:
if
"raw_url"
in
item:
gist_urls.append(
str
(item[
11
:
-
1
]))
if
"filename"
in
item:
files.append(
str
(item.split(
":"
)[
1
][
2
:
-
1
]))
return
[gist_urls, files]
def
write_gist(filename, text):
fp
=
open
(filename,
'w'
)
fp.write(text)
fp.close()
def
download(permission, user, request, fileno):
if
(permission
=
=
"yes"
or
permission
=
=
"no"
):
gist_urls, files
=
load(request)
dirname
=
user
+
"'s_gists/"
create_directory(dirname)
if
(fileno[
1
]
=
=
"all"
):
for
i
in
range
(
len
(gist_urls)):
gist
=
requests.get(gist_urls[i])
write_gist(dirname
+
files[i], gist.text)
else
:
for
i
in
range
(
1
,
len
(fileno)):
gist
=
requests.get(gist_urls[
int
(fileno[i])])
write_gist(dirname
+
files[
int
(fileno[i])], gist.text)
def
detailed(urls, pos):
gist
=
requests.get(urls[
int
(pos)])
print
(gist.text)
def
main():
ask_auth, user, request
=
auth()
urls, files
=
load(request)
try
:
while
(
1
):
command
=
input
(
"Enter your command: "
)
if
(
"download"
in
command):
download(ask_auth, user, request, command.split(
" "
))
elif
(
"detailed"
in
command):
detailed(urls, command.split(
" "
)[
1
])
elif
(command
=
=
"show"
):
show(files)
elif
(command
=
=
"exit"
):
return
except
:
pass
if
(__name__
=
=
'__main__'
):
main()