Skip to content

Commit

Permalink
Merge pull request #10 from vitalygashkov/next
Browse files Browse the repository at this point in the history
Changed default working directory to `~/Downloads/znum`
  • Loading branch information
vitalygashkov authored Sep 5, 2024
2 parents 766ed40 + 223d556 commit 0075366
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 6 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

Инструмент для скачивания книг с электронно-библиотечной системы [Знаниум](https://znanium.com/)

> [!NOTE]
> Скачивание платных материалов становится возможным только после их приобретения на личную учетную запись
## Особенности

- **Кроссплатформенность**: работает на Windows, Linux, macOS
Expand All @@ -13,8 +16,8 @@

## Использование

- Открой терминал (перейди в ту директорию, где хочешь хранить книги)
- Открой терминал
- Выполни команду `npx znum` (при первом запуске согласись на установку пакета через ввод `y`)
- Если запускаешь первый раз, то будут будут запрошены имя пользователя и пароль для авторизации (данные сессии сохранятся в `cookies.json`)
- Далее будет запрошена ссылка на материал; вставь ссылку
- После завершения скачивания книгу можешь найти в папке `downloads`
- После завершения скачивания книгу можешь найти в папке Загрузки внутри папки `znum`
5 changes: 5 additions & 0 deletions src/constants.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,7 @@
import { homedir } from 'node:os';
import { join } from 'node:path';

export const DEFAULT_URL = 'https://znanium.ru/';
export const DELAY_BETWEEN_REQUESTS = 1 * 1000; // 1 секунда
export const DOWNLOADS_DIR = join(homedir(), 'Downloads');
export const WORK_DIR = join(DOWNLOADS_DIR, 'znum');
4 changes: 2 additions & 2 deletions src/http.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@ import { setGlobalDispatcher } from 'undici';
import { CookieAgent } from 'http-cookie-agent/undici';
import { Cookie, CookieJar } from 'tough-cookie';
import { gotScraping } from 'got-scraping';
import { DEFAULT_URL } from './constants.js';
import { DEFAULT_URL, WORK_DIR } from './constants.js';

export const cookiePath = join(process.cwd(), 'cookies.json');
export const cookiePath = join(WORK_DIR, 'cookies.json');
export const cookieJar = new CookieJar();
export const cookieAgent = new CookieAgent({ cookies: { jar: cookieJar } });
setGlobalDispatcher(cookieAgent);
Expand Down
5 changes: 3 additions & 2 deletions znum.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import { getTextBetween } from './src/utils.js';
import { fetchDocumentInfo } from './src/api.js';
import { convertImagesToPdf } from './src/pdf.js';
import { downloadImages } from './src/images.js';
import { WORK_DIR } from './src/constants.js';

(async () => {
await login();
Expand All @@ -17,11 +18,11 @@ import { downloadImages } from './src/images.js';
console.log('Получение информации о книге...');
const info = await fetchDocumentInfo(url);
console.log('Скачивание изображений...');
const imagesDir = join(process.cwd(), 'downloads', id);
const imagesDir = join(WORK_DIR, id);
const images = await downloadImages(imagesDir, id, info);
await setTimeout(500);
console.log('Конвертирование изображений в PDF...');
const output = join(process.cwd(), 'downloads', `${id}.pdf`);
const output = join(WORK_DIR, `${id}.pdf`);
await convertImagesToPdf(images, output);
await rm(imagesDir, { recursive: true, force: true });
})();
Expand Down

0 comments on commit 0075366

Please sign in to comment.