Skip to content

Commit d6aa745

Browse files
author
TECHTANIC
committed
Fixed Few issues added russian
1 parent 8295cca commit d6aa745

File tree

6 files changed

+50
-68
lines changed

6 files changed

+50
-68
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## v1.1
4+
- Fixed ReadDiscount and CourseVania
5+
- Added Russian Language filter
6+
37
## v1.0
48

59
- Fresh start

CLI/duce.py

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -124,11 +124,8 @@ def real_discount():
124124
r = requests.get(url)
125125
soup = bs(r.content, "html5lib")
126126
try:
127-
link = soup.select_one(
128-
"#panel > div:nth-child(4) > div:nth-child(1) > div.col-lg-7.col-md-12.col-sm-12.col-xs-12 > a"
129-
)["href"]
130-
if link.startswith("https://www.udemy.com"):
131-
rd_links.append(title + "|:|" + link)
127+
link = soup.select_one("a[href^='https://www.udemy.com']")["href"]
128+
rd_links.append(title + "|:|" + link)
132129
except:
133130
pass
134131
rd_bar.close()
@@ -140,7 +137,7 @@ def coursevania():
140137
cv_links = []
141138
r = requests.get("https://coursevania.com/courses/")
142139
soup = bs(r.content, "html5lib")
143-
nonce = soup.find_all("script")[22].text[30:]
140+
nonce = soup.find_all("script")[20].text[30:]
144141
nonce = json.loads(nonce[: len(nonce) - 6])["load_content"]
145142
r = requests.get(
146143
"https://coursevania.com/wp-admin/admin-ajax.php?&template=courses/grid&args={%22posts_per_page%22:%2230%22}&action=stm_lms_load_content&nonce="
@@ -193,7 +190,7 @@ def idcoupons():
193190

194191
# Constants
195192

196-
version = "v1.0"
193+
version = "v1.1"
197194

198195

199196
def create_scrape_obj():
@@ -224,12 +221,6 @@ def cookiejar(
224221
return cookies
225222

226223

227-
def save_settings(settings):
228-
if True:
229-
with open("duce-cli-settings.json", "w") as f:
230-
json.dump(settings, f, indent=4)
231-
232-
233224
def load_settings():
234225
try:
235226
with open("duce-cli-settings.json") as f:
@@ -240,22 +231,22 @@ def load_settings():
240231
"https://raw.githubusercontent.com/techtanic/Discounted-Udemy-Course-Enroller/master/duce-cli-settings.json"
241232
).json()
242233

243-
try: # v1.2
244-
del settings["access_token"]
245-
del settings["client_id"]
246-
settings["email"] = ""
247-
settings["password"] = ""
248-
except:
249-
pass
250-
251-
instructor_exclude = "\n".join(settings["instructor_exclude"])
252234
title_exclude = "\n".join(settings["title_exclude"])
235+
instructor_exclude = "\n".join(settings["instructor_exclude"])
253236

254-
save_settings(settings)
237+
try:
238+
settings["languages"]["Russian"]
239+
except KeyError:
240+
settings["languages"]["Russian"] = True
255241

256242
return settings, instructor_exclude, title_exclude
257243

258244

245+
def save_settings():
246+
with open("duce-cli-settings.json", "w") as f:
247+
json.dump(settings, f, indent=4)
248+
249+
259250
def get_course_id(url):
260251
r = requests.get(url, allow_redirects=False)
261252
if r.status_code in (404, 302, 301):
@@ -392,7 +383,7 @@ def check_login(email, password):
392383
currency = r["Config"]["price_country"]["currency"]
393384
user = r["me"]["display_name"]
394385
settings["email"], settings["password"] = email, password
395-
save_settings(settings)
386+
save_settings()
396387
return head, user, currency, s, ""
397388

398389

COLAB/DUCE.ipynb

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -193,11 +193,8 @@
193193
" r = requests.get(url)\n",
194194
" soup = bs(r.content, \"html5lib\")\n",
195195
" try:\n",
196-
" link = soup.select_one(\n",
197-
" \"#panel > div:nth-child(4) > div:nth-child(1) > div.col-lg-7.col-md-12.col-sm-12.col-xs-12 > a\"\n",
198-
" )[\"href\"]\n",
199-
" if link.startswith(\"https://www.udemy.com\"):\n",
200-
" rd_links.append(title + \"|:|\" + link)\n",
196+
" link = soup.select_one(\"a[href^='https://www.udemy.com']\")[\"href\"]\n",
197+
" rd_links.append(title + \"|:|\" + link)\n",
201198
" except:\n",
202199
" pass\n",
203200
" rd_bar.close()\n",
@@ -209,7 +206,7 @@
209206
" cv_links = []\n",
210207
" r = requests.get(\"https://coursevania.com/courses/\")\n",
211208
" soup = bs(r.content, \"html5lib\")\n",
212-
" nonce = soup.find_all(\"script\")[22].text[30:]\n",
209+
" nonce = soup.find_all(\"script\")[20].text[30:]\n",
213210
" nonce = json.loads(nonce[: len(nonce) - 6])[\"load_content\"]\n",
214211
" r = requests.get(\n",
215212
" \"https://coursevania.com/wp-admin/admin-ajax.php?&template=courses/grid&args={%22posts_per_page%22:%2230%22}&action=stm_lms_load_content&nonce=\"\n",
@@ -262,7 +259,7 @@
262259
"\n",
263260
"# Constants\n",
264261
"\n",
265-
"version = \"v1.0\"\n",
262+
"version = \"v1.1\"\n",
266263
"\n",
267264
"\n",
268265
"def create_scrape_obj():\n",

GUI/duce.py

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,10 @@ def real_discount():
144144
r = requests.get(url)
145145
soup = bs(r.content, "html5lib")
146146
try:
147-
link = soup.select_one(
148-
"#panel > div:nth-child(4) > div:nth-child(1) > div.col-lg-7.col-md-12.col-sm-12.col-xs-12 > a"
149-
)["href"]
150-
if link.startswith("https://www.udemy.com"):
151-
rd_links.append(title + "|:|" + link)
147+
link = soup.select_one("a[href^='https://www.udemy.com']")["href"]
148+
rd_links.append(title + "|:|" + link)
152149
except:
153150
pass
154-
155151
main_window["pReal Discount"].update(0, visible=False)
156152
main_window["iReal Discount"].update(visible=True)
157153

@@ -162,7 +158,7 @@ def coursevania():
162158
cv_links = []
163159
r = requests.get("https://coursevania.com/courses/")
164160
soup = bs(r.content, "html5lib")
165-
nonce = soup.find_all("script")[22].text[30:]
161+
nonce = soup.find_all("script")[20].text[30:]
166162
nonce = json.loads(nonce[: len(nonce) - 6])["load_content"]
167163
r = requests.get(
168164
"https://coursevania.com/wp-admin/admin-ajax.php?&template=courses/grid&args={%22posts_per_page%22:%2230%22}&action=stm_lms_load_content&nonce="
@@ -217,7 +213,7 @@ def idcoupons():
217213

218214
########################### Constants
219215

220-
version = "v1.0"
216+
version = "v1.1"
221217

222218

223219
def create_scrape_obj():
@@ -246,12 +242,6 @@ def cookiejar(
246242
return cookies
247243

248244

249-
def save_settings(settings):
250-
if True:
251-
with open("duce-gui-settings.json", "w") as f:
252-
json.dump(settings, f, indent=4)
253-
254-
255245
def load_settings():
256246
try:
257247
os.rename("duce-settings.json", "duce-gui-settings.json")
@@ -261,30 +251,28 @@ def load_settings():
261251
with open("duce-gui-settings.json") as f:
262252
settings = json.load(f)
263253
except FileNotFoundError:
264-
settings = requests.get(
265-
"https://raw.githubusercontent.com/techtanic/Discounted-Udemy-Course-Enroller/master/duce-gui-settings.json"
266-
).json()
254+
settings = dict(
255+
requests.get(
256+
"https://raw.githubusercontent.com/techtanic/Discounted-Udemy-Course-Enroller/master/duce-gui-settings.json"
257+
).json()
258+
)
267259

268260
title_exclude = "\n".join(settings["title_exclude"])
269261
instructor_exclude = "\n".join(settings["instructor_exclude"])
270262

271-
try: # v4.3
272-
del settings["access_token"]
273-
del settings["client_id"]
274-
settings["email"] = ""
275-
settings["password"] = ""
276-
except:
277-
pass
278-
try: # v4.3
279-
settings["stay_logged_in"]["cookie"]
280-
del settings["stay_logged_in"]["cookie"]
281-
settings["stay_logged_in"]["manual"] = False
282-
except:
283-
pass
284-
save_settings(settings)
263+
try:
264+
settings["languages"]["Russian"]
265+
except KeyError:
266+
settings["languages"]["Russian"] = True
267+
285268
return settings, instructor_exclude, title_exclude
286269

287270

271+
def save_settings():
272+
with open("duce-gui-settings.json", "w") as f:
273+
json.dump(settings, f, indent=4)
274+
275+
288276
def fetch_cookies():
289277
cookies = browser_cookie3.load(domain_name="www.udemy.com")
290278
return requests.utils.dict_from_cookiejar(cookies), cookies
@@ -775,7 +763,7 @@ def main1():
775763
my_cookies["csrftoken"],
776764
)
777765
settings["stay_logged_in"]["auto"] = values["sli_a"]
778-
save_settings(settings)
766+
save_settings()
779767
login_window.close()
780768
break
781769

@@ -822,7 +810,7 @@ def main1():
822810
client_id, access_token, csrf_token
823811
)
824812
settings["stay_logged_in"]["manual"] = values["sli_m"]
825-
save_settings(settings)
813+
save_settings()
826814
login_window.close()
827815
break
828816
else:
@@ -1138,7 +1126,7 @@ def main1():
11381126
False,
11391127
False,
11401128
)
1141-
save_settings(settings)
1129+
save_settings()
11421130
break
11431131

11441132
elif event == "Support":
@@ -1163,7 +1151,7 @@ def main1():
11631151
filter(None, values["title_exclude"].split("\n"))
11641152
)
11651153
settings["min_rating"] = float(values["min_rating"])
1166-
save_settings(settings)
1154+
save_settings()
11671155

11681156
all_functions = create_scrape_obj()
11691157
funcs = {}

duce-cli-settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
"Spanish": true,
3232
"Thai": true,
3333
"Turkish": true,
34-
"Hindi": true
34+
"Hindi": true,
35+
"Russian": true
3536
},
3637
"sites": {
3738
"Discudemy": true,

duce-gui-settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,8 @@
2323
"Romanian": true,
2424
"Spanish": true,
2525
"Thai": true,
26-
"Turkish": true
26+
"Turkish": true,
27+
"Russian": true
2728
},
2829
"categories": {
2930
"Business": true,

0 commit comments

Comments
 (0)