- Notifications
You must be signed in to change notification settings - Fork182
Scripts that automatically claim and download free daily eBooks fromhttps://www.packtpub.com/packt/offers/free-learning
License
luk6xff/Packt-Publishing-Free-Learning
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
packt-cli is a Python script that allows to automatically grab and download a daily FreeLearning Packt ebook fromhttps://www.packtpub.com/packt/offers/free-learning.You can also use it to download already claimed ebooks from your Packtaccount.
The script usesanti-captcha.com service to bypassthe Recaptcha captcha to function fully automatically. Anti Captcha employspeople to solve captcha tests. The service costs about $2 per thousand captchatest, allowing you to operate for a few dollars over the years.
To install current version of script simply run
pip3 install packt --upgradeYou may want to install it inside newvirtualenv.
Thepackt-cli script might be executed with several optional arguments.
- Option-g [--grab] - claims (grabs) a daily eBook into your account
packt-cli -g- Option-gd [--grabd] - claims (grabs) a daily ebook and downloads the title afterwards to the location specified under[download_folder_path] field (configFile.cfg file)
packt-cli -gd- Option-da [--dall] - downloads all ebooks from your account
packt-cli -da- Option-sgd [--sgd] - claims and uploads a book to[gdFolderName] folder onto Google Drive (more about that in Google Drive API Setup section)
packt-cli -sgd- Option-m [--mail] - claims and sends an email with the newest book in PDF format (and MOBI if is also downloaded; see mail options confguration under [MAIL] path inconfigFile.cfg)
packt-cli -m- SubOption-sm [--status_mail] - sends fail report email whether script execution was successful
packt-cli -gd -sm- SubOption-f [--folder] - downloads an ebook into a created folder, named as ebook's title
packt-cli -gd -f- SubOption-c [--cfgpath] - selects folder where config file can be found (default: cwd)
packt-cli -gd -c /home/usr/Download all ebooks in all available formats (pdf, epub, mobi) with zipped source code file from your Packt account.
To download all ebooks in all available formats from your Packt account, you have to prepare your config file as shown below:
[LOGIN_DATA]email: youremail@youremail.compassword: yourpassword[DOWNLOAD_DATA]download_folder_path: C:\Users\me\Desktop\myEbooksFromPacktdownload_formats: pdf, epub, mobi, code[GOOGLE_DRIVE_DATA]gd_app_name: GoogleDriveManagergd_folder_name: PACKT_EBOOKSrun:
packt-cli -daOn Debian (and any Debian-based Linux distribution) you may usecron job to schedule script execution. To do this runcrontab -e and add the following line to crontab file.
0 12 * * * path/to/virtualenv/bin/packt-cli -gd > path/to/log/file 2>&1Adjust execution time and paths according to your setup. To verify if cron executes the script as expected, run
$ sudo grep CRON /var/log/syslogschtasks.exe setup (more info:https://technet.microsoft.com/en-us/library/cc725744.aspx) :
To create the task that will be called at 12:00 everyday, run the following command incmd (modify all paths according to your setup):
schtasks /create /sc DAILY /tn "grabEbookFromPacktTask" /tr "C:\Users\me\Desktop\GrabPacktFreeBook\grabEbookFromPacktTask.bat" /st 12:00To check if the "grabEbookFromPacktTask" has been added to all scheduled tasks on your computer:
schtasks /queryTo run the task manually:
schtasks /run /tn "grabEbookFromPacktTask"To delete the task:
schtasks /delete /tn "grabEbookFromPacktTask"If you want to log all downloads add -l switch to grabEbookFromPacktTask i.e.
schtasks /create /sc DAILY /tn "grabEbookFromPacktTask" /tr "C:\Users\me\Desktop\GrabPacktFreeBook\grabEbookFromPacktTask.bat -l" /st 12:00If you want to additionaly make command line windows stay open after download add -p switch i.e.
schtasks /create /sc DAILY /tn "grabEbookFromPacktTask" /tr "C:\Users\me\Desktop\GrabPacktFreeBook\grabEbookFromPacktTask.bat -l -p" /st 12:00Full info about the Google Drive Python API can be foundhere.
- Turn on the Google Drive API
- Usethis wizard to create or select a project in the Google Developers Console and automatically turn on the API. Click
Continue, thenGo to credentials. - On the
Add credentials to your project page, click theCancelbutton. - At the top of the page, select the
OAuth consent screentab. Select an email address, enter a product name if not already set, and click the Save button. - Select the
Credentialstab, click theCreate credentialsbutton and selectOAuth client ID. - Select the application type
Other, enter the nameGoogleDriveManager, and click theCreatebutton. - Click
OKto dismiss the resulting dialog. - Click the file_download (
Download JSON) button to the right of the client ID. - Move this file next to the config file and rename it to
client_secret.json.
- Create credentials folder:
- Simply, just fire up the script with
-sgdargument; During first launch you will see a prompt in your browser asking for permissions, click thenallow
packt-cli -sgd- Or if you're unable to launch browser locally (e.g. you're connecting through SSH without X11 forwarding) use this command once, follow instructions and give permission and later you can use normal command (without
--noauth_local_webserver).
packt-cli -c /path/to/config/file.cfg -sgd --noauth_local_webserverThe command parameters number and their order is important!
- Already done!
- Run the same command as above to claim and upload the eBook to Google Drive.
In case of any questions feel free to ask, happy grabbing!
About
Scripts that automatically claim and download free daily eBooks fromhttps://www.packtpub.com/packt/offers/free-learning
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.