Главная
Блог разработчиков phpBB
 
+ 17 предустановленных модов
+ SEO-оптимизация форума
+ авторизация через соц. сети
+ защита от спама

Экспорт Избранного на Прогре в PDF

Anna | 15.06.2014 | нет комментариев
Доброго времени суток, прогровчане!

Думаю многих из вас когда-либо посещала мысль «вот бы сберечь статьи с Програ».
Такая же мысль посетила и меня два дня назад. Сберечь захотел не легко всякую статью, а только те, что в избранном, да не поштучно, а сразу всё скопом.
Первая мысль — нужно написать скрипт, тот, что всё это вытянет. Python я теснее подучил, но вот с генерацией PDF на нем сталкиваться ещё не доводилось.

Закручинился я было… Но OpenSource и Прогр спасли меня!

Короткая суть статьи для тех, кому не увлекательно много читать

В статье описан доработанный скрипт на Python fav2pdf.
Первоначальный автор скрипта vrtx, за что ему огромное спасибо.
«Usage — отменнее тысячи слов!»

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

Из чего собрана картинка

Ещё раз спасибо Прогру. КДПВ собрана из 2-х, которые были в статьях раз и два.

Позже первой мысли меня посетила вторая. Наверно не я один над этим задумаывался. И стал методично обыскивать Прогр в поисках чего-нибудь вкусненького. И достаточно стремительно наткнулся на статьютоварища vrtx, где он описывал приблизительно то, что я и хотел.

Но как неизменно есть НО:
его скрипт fav2pdf.py собирает все статьи из избранного и сливает их в один PDF, да ещё и без комментариев, а в них Зачастую гораздо огромнее ценной информации, чем бывает в самой статье.
Мне же хотелось иметь по отдельной PDF-ке на статью. Иметь вероятность выбора: с коментариями либо без, иметь либо нет разбивку по хабам…

Сделав форк скрипта fav2pdf.py (за что низкий поклон движению OpenSource), я вначале сделал мелкие доработки, Дабы всё сохранялось по отдельным файлам. Порадовал автора тем, что его наработки кому-то сгодились.

Правда потом мне стало немножко совестно. Я кое-как исправил скрипт и сделал, что было необходимо мне. Но не все же програжители знают python и могут исправить скрипт под свои нужды.

Следственно я потратил ещё немножко времени и допилил скрипт до абсолютно себе пригодной утилиты.
Сейчас скипт дает вероятность:
— предпочесть директорию, куда дозволено сберечь pdf (правда для комплекта pdf’ок будут сделаны подпапки posts и hubs)
— задать лимитация по времени (скажем, сберечь только статьи за 2013 год)
— предпочесть сберегать либо нет комментарии
— сберечь все в один pdf либо разбить на много pdf’ок
— если много pdf’ок, то дозволено ещё сделать рубрикатор из симлинков (подпапки hubs/hub_name с симлинками на posts/post_id.pdf), Дабы дозволено было легче ориентироваться в коллекции.

Зависимости скрипта

Для правильной работы скрипта мне потребовалось через pip (для pyhton2) поставить следующие пакеты:
— pisa
— reportlab
— html5lib
— requests
Параметры командной строки утилиты

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

На сим всё. Если кому понравилось, то пользуйтесь на здоровье!
Если кому-то чего-то не хватает, то пишите фич-реквест в комментах, по мере сил постараюсь реализовать.

Источник: programmingmaster.ru
Оставить комментарий
Форум phpBB, русская поддержка форума phpBB
Рейтинг@Mail.ru 2008 - 2017 © BB3x.ru - русская поддержка форума phpBB