Skip to content

Commit e961cc2

Browse files
Merge pull request #2 from zhackk/dev
Update mscsploit.py
2 parents e6291b0 + 645d22e commit e961cc2

File tree

1 file changed

+44
-42
lines changed

1 file changed

+44
-42
lines changed

mscsploit.py

Lines changed: 44 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#!/usr/bin/python3
22

33
from bs4 import BeautifulSoup
4-
from art import tprint
54
from colorama import Fore
65

76
import argparse
@@ -25,11 +24,13 @@
2524

2625
def choose_batch():
2726
batches = [
28-
[1, '2022', 'https://msc-mu.com/level/17'],
27+
[1, '2022', 'https://msc-mu.com/level/17'],
2928
[2, 'Rou7', 'https://msc-mu.com/level/16'],
3029
[3, 'Wateen', 'https://msc-mu.com/level/15'],
3130
[4, 'Nabed', 'https://msc-mu.com/level/14'],
32-
[5, 'Wareed', 'https://msc-mu.com/level/13']
31+
[5, 'Wareed', 'https://msc-mu.com/level/13'],
32+
[6, 'Minors', 'https://msc-mu.com/level/10'],
33+
[7, 'Majors', 'https://msc-mu.com/level/9' ]
3334
]
3435
print('\n')
3536
if args.batch:
@@ -84,6 +85,7 @@ def choose_course(courses):
8485
for course in courses:
8586
print(str(course[0]) + ') ' + course[1])
8687
selected_course = input('\n[*] Which course would you like to download?\n\n>> ')
88+
list_index = None
8789
try:
8890
selected_course = int(selected_course)
8991
for course in courses:
@@ -97,50 +99,52 @@ def choose_course(courses):
9799
return choose_course(courses)
98100

99101
def download_lectures(url, folder):
100-
extension = '.pdf'
101102
course_page = requests.get(url, headers=HEADERS)
102-
links = re.findall('<a href="(.*)">.*' + extension + '</a>', course_page.content.decode())
103-
names = re.findall('<a href=".*">(.*)' + extension + '</a>', course_page.content.decode())
104-
doc = BeautifulSoup(course_page.text, 'html.parser')
105-
y = 0
106-
prev_sub_folder = None
107-
subject_folders_list =[]
108-
for x, link in enumerate(links):
109-
link = link.strip() + extension
110-
subject_folder = find_subject_folder(names[x] + extension, doc)
111-
if subject_folder != prev_sub_folder:
112-
if subject_folder in subject_folders_list:
113-
subject_folder = subject_folder + '-extras'
114-
y = 0
115-
new_name = str(y + 1) + '. ' + names[x] + extension
116-
y += 1
117-
subject_folders_list.append(subject_folder)
118-
prev_sub_folder = subject_folder
119-
file_path = folder + subject_folder + '/' + new_name
120-
if os.path.isfile(file_path):
121-
if new_name.startswith('1.'):
103+
extensions = ['.pdf', '.pptx']
104+
for extension in extensions:
105+
links = re.findall('<a href="(.*)">.*' + extension + '</a>', course_page.content.decode())
106+
names = re.findall('<a href=".*">(.*)' + extension + '</a>', course_page.content.decode())
107+
doc = BeautifulSoup(course_page.text, 'html.parser')
108+
y = 0
109+
prev_sub_folder = None
110+
subject_folders_list =[]
111+
for x, link in enumerate(links):
112+
link = link.strip() + extension
113+
subject_folder = find_subject_folder(names[x] + extension, doc)
114+
if subject_folder != prev_sub_folder:
115+
if subject_folder in subject_folders_list:
116+
subject_folder = subject_folder + '-extras'
117+
y = 0
118+
new_name = str(y + 1) + '. ' + names[x] + extension
119+
y += 1
120+
subject_folders_list.append(subject_folder)
121+
prev_sub_folder = subject_folder
122+
file_path = folder + subject_folder + '/' + new_name
123+
if os.path.isfile(file_path):
124+
if new_name.startswith('1.'):
125+
print('\n################ ' + subject_folder + ' ################\n')
126+
print( Fore.MAGENTA + new_name + ' <is already downloaded there XD>' + Fore.RESET)
127+
continue
128+
if not os.path.isdir(folder + subject_folder):
129+
os.makedirs(folder + subject_folder)
122130
print('\n################ ' + subject_folder + ' ################\n')
123-
print( Fore.MAGENTA + new_name + ' <is already downloaded there XD>' + Fore.RESET)
124-
continue
125-
if not os.path.isdir(folder + subject_folder):
126-
os.makedirs(folder + subject_folder)
127-
print('\n################ ' + subject_folder + ' ################\n')
128-
129-
response = requests.get(link, headers=HEADERS)
130-
with open(file_path, 'wb') as file:
131-
file.write(response.content)
132-
print('[*] Downloaded ' + new_name)
131+
132+
response = requests.get(link, headers=HEADERS)
133+
with open(file_path, 'wb') as file:
134+
file.write(response.content)
135+
print('[*] Downloaded ' + new_name)
136+
133137

134138
# If not specified, prompt the user to input a folder
135-
139+
136140
def choose_folder():
137141
folder = os.path.expanduser("~") + FOLDER
138142
if args.folder:
139143
if '~' in args.folder:
140144
args.folder = os.path.expanduser(args.folder)
141145
if os.path.isdir(args.folder):
142-
folder = args.folder
143-
return folder
146+
folder = args.folder
147+
return folder
144148
else:
145149
print('\n[*] Folder Not found! ', end='')
146150
quit()
@@ -164,6 +168,7 @@ def choose_folder():
164168
# Gets the name of the course from the course number, and makes a folder with that name
165169

166170
def make_course_folder(courses, index, folder):
171+
course_name = None
167172
for course in courses:
168173
if course[2] == index:
169174
course_name = course[1]
@@ -184,11 +189,8 @@ def main():
184189
download_lectures(download_url, folder)
185190

186191
if __name__ == '__main__':
187-
print(Fore.CYAN + '#'*54)
188-
print(Fore.RED)
189-
tprint('RBCs')
190-
print(Fore.CYAN + '#'*54, end='\n')
191-
192+
print(Fore.CYAN + '#'*54 + Fore.RESET)
193+
192194
try:
193195
main()
194196
except KeyboardInterrupt:

0 commit comments

Comments
 (0)