- PVSM.RU - https://www.pvsm.ru -
Доброго времени суток!
Думаю многих из вас когда-либо посещала мысль «вот бы сохранить статьи с Хабра».
Такая же мысль посетила и меня два дня назад. Сохранить захотел не просто каждую статью, а только те, что в избранном, да не поштучно, а сразу всё скопом.
Первая мысль — надо написать скрипт, который всё это вытянет. Python я уже [1] подучил [2], но вот с генерацией PDF на нем сталкиваться ещё не приходилось.
Закручинился я было… Но OpenSource и Хабр спасли меня!
usage: fav2pdf.py [-h] [-d OUTPUT_DIR] [--from-date FROM_DATE]
[--to-date TO_DATE] [--all-in-one]
[--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]] [--no-comments]
[--no-symlinks]
user
Tool for save favorite posts from habrahabr.ru in pdfs
positional arguments:
user habrahabr.ru username
optional arguments:
-h, --help show this help message and exit
-d OUTPUT_DIR, --output-dir OUTPUT_DIR
Directory for output
--from-date FROM_DATE
From date
--to-date TO_DATE To date
--all-in-one Save all posts in one PDF-file
--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]
Save only posts from hubs. For multiple: "--only-hubs
Hub1 Hub2 --"
--no-comments Dont save comments from posts
--no-symlinks Dont create symlinks to posts
После первой мысли меня посетила вторая. Наверняка не я один над этим задумаывался. И стал методично обыскивать Хабр в поисках чего-нибудь вкусненького. И довольно быстро наткнулся на статью [7] товарища vrtx [4], где он описывал примерно то, что я и хотел.
Но как всегда есть НО:
его скрипт fav2pdf.py собирает все статьи из избранного и сливает их в один PDF, да ещё и без комментариев, а в них часто намного больше ценной информации, чем бывает в самой статье.
Мне же хотелось иметь по отдельной PDF-ке на статью. Иметь возможность выбора: с коментариями или без, иметь или нет разбивку по хабам...
Сделав форк скрипта fav2pdf.py [8] (за что низкий поклон движению OpenSource), я сначала сделал мелкие доработки [9], чтобы всё сохранялось по отдельным файлам. Порадовал автора [10] тем, что его наработки кому-то пригодились.
Правда потом мне стало немного стыдно. Я кое-как поправил скрипт и сделал, что было нужно мне. Но не все же читатели знают python и могут поправить скрипт под свои нужды.
Поэтому я потратил ещё немного времени и допилил скрипт до вполне себе полезной утилиты.
Теперь скипт дает возможность:
— выбрать директорию, куда можно сохранить pdf (правда для набора pdf'ок будут созданы подпапки posts и hubs)
— задать ограничение по времени (например, сохранить только статьи за 2013 год)
— выбрать сохранять или нет комментарии
— сохранить все в один pdf или разбить на много pdf'ок
— если много pdf'ок, то можно ещё создать рубрикатор из симлинков (подпапки hubs/hub_name с симлинками на posts/post_id.pdf), чтобы можно было легче ориентироваться в коллекции.
usage: fav2pdf.py [-h] [-d OUTPUT_DIR] [--from-date FROM_DATE]
[--to-date TO_DATE] [--all-in-one]
[--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]] [--no-comments]
[--no-symlinks]
user
Tool for save favorite posts from habrahabr.ru in pdfs
positional arguments:
user habrahabr.ru username
optional arguments:
-h, --help show this help message and exit
-d OUTPUT_DIR, --output-dir OUTPUT_DIR
Directory for output
--from-date FROM_DATE
From date
--to-date TO_DATE To date
--all-in-one Save all posts in one PDF-file
--only-hubs [ONLY_HUBS [ONLY_HUBS ...]]
Save only posts from hubs. For multiple: "--only-hubs Hub1 Hub2 --"
--no-comments Dont save comments from posts
--no-symlinks Dont create symlinks to posts
На сим всё. Если кому понравилось, то пользуйтесь на здоровье!
Если кому-то чего-то не хватает, то пишите фич-реквест в комментах, по мере сил постараюсь реализовать.
Автор: icoz
Источник [11]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/python/52578
Ссылки в тексте:
[1] уже: http://habrahabr.ru/post/148597/
[2] подучил: http://habrahabr.ru/post/171937/
[3] fav2pdf: https://github.com/icoz/fav2pdf
[4] vrtx: http://habrahabr.ru/users/vrtx/
[5] раз: http://habrahabr.ru/post/91231/
[6] два: http://habrahabr.ru/post/190364/
[7] статью: http://habrahabr.ru/post/111411/
[8] fav2pdf.py: https://github.com/vrtx64/fav2pdf
[9] мелкие доработки: https://gist.github.com/icoz/8360969
[10] Порадовал автора: http://habrahabr.ru/post/111411/#comment_7186750
[11] Источник: http://habrahabr.ru/post/208802/
Нажмите здесь для печати.