mirror of
https://github.com/coursera-dl/coursera-dl.git
synced 2026-07-20 01:43:49 +00:00
I also moved a couple of methods into a separate class CourseraOnDemand to encapsulate all the tricks that are performed to extract links to different types of resources.
45 lines
1.9 KiB
Python
45 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
"""
|
|
This module defines the global constants.
|
|
"""
|
|
|
|
import os
|
|
import getpass
|
|
import tempfile
|
|
|
|
COURSERA_URL = 'https://www.coursera.org'
|
|
AUTH_URL = 'https://accounts.coursera.org/api/v1/login'
|
|
AUTH_URL_V3 = 'https://www.coursera.org/api/login/v3'
|
|
CLASS_URL = 'https://class.coursera.org/{class_name}'
|
|
OPENCOURSE_CONTENT_URL = 'https://www.coursera.org/api/opencourse.v1/course/{class_name}'
|
|
OPENCOURSE_VIDEO_URL = 'https://www.coursera.org/api/opencourse.v1/video/{video_id}'
|
|
OPENCOURSE_SUPPLEMENT_URL = 'https://www.coursera.org/api/onDemandSupplements.v1/'\
|
|
'{course_id}~{element_id}?includes=asset&fields=openCourseAssets.v1%28typeName%29,openCourseAssets.v1%28definition%29'
|
|
OPENCOURSE_PROGRAMMING_ASSIGNMENTS_URL = \
|
|
'https://www.coursera.org/api/onDemandProgrammingLearnerAssignments.v1/{course_id}~{element_id}?fields=submissionLearnerSchema'
|
|
OPENCOURSE_ASSET_URL = \
|
|
'https://www.coursera.org/api/assetUrls.v1?ids={ids}'
|
|
|
|
|
|
ABOUT_URL = ('https://api.coursera.org/api/catalog.v1/courses?'
|
|
'fields=largeIcon,photo,previewLink,shortDescription,smallIcon,'
|
|
'smallIconHover,universityLogo,universityLogoSt,video,videoId,'
|
|
'aboutTheCourse,targetAudience,faq,courseSyllabus,courseFormat,'
|
|
'suggestedReadings,instructor,estimatedClassWorkload,'
|
|
'aboutTheInstructor,recommendedBackground,subtitleLanguagesCsv&'
|
|
'q=search&query={class_name}')
|
|
|
|
AUTH_REDIRECT_URL = ('https://class.coursera.org/{class_name}'
|
|
'/auth/auth_redirector?type=login&subtype=normal')
|
|
|
|
ROOT = os.path.abspath(os.path.join(os.path.dirname(__file__), '..'))
|
|
# define a per-user cache folder
|
|
if os.name == "posix": # pragma: no cover
|
|
import pwd
|
|
_USER = pwd.getpwuid(os.getuid())[0]
|
|
else:
|
|
_USER = getpass.getuser()
|
|
|
|
PATH_CACHE = os.path.join(tempfile.gettempdir(), _USER + "_coursera_dl_cache")
|
|
PATH_COOKIES = os.path.join(PATH_CACHE, 'cookies')
|