PDFのHabrお気に入り

来てすべて!

画像

私はすべてを整理してカタログ化するのが好きなので、アイデアは長い間、ハブから選択したトピックをPDFでラップし、日付でソートするために回転してきました。
実際、休暇中に少しの空き時間が割り当てられたので、計画を実行してHabrと共有することにしました

UPD:
-「ページ上で大きすぎる」バグを修正(githubの詳細) BifidokkStreetAngelに感謝
-リンクによって作成されたトピック作成者
-指定されたブログからのみお気に入りを保存する機能を追加しました



スクリプトにはpython-pisaが必要です
残念ながら、私は窓の下で作業をテストしませんでした

起動順序:

fav2pdf.pyをニーズに合わせて編集する

user = 'vrtx' -
site = user + '.habrahabr.ru'
from_date = '1 2011' - ,
to_date = '' - ,


打ち上げ

python fav2pdf.py

結論は次のようになります

Processed page 1 of 25:
----------------------
1 Topic: ->50
2 Topic: Android->[] Android
3 Topic: Mobile Development-> Samsung Bada
4 Topic: ->Brainfuck
Topic: -> , 1.0, is locked!
----------------------

Prepare PDF...


その結果、スクリプトの横に、PDF形式のニックネームの名前を持つファイルを取得します

機能:

残念ながら、お気に入りのトピックは公開日ではなく、そこに追加された日付でソートされているため、すべてのお気に入りをソートする必要がありました。
これは、速度に大きく影響しませんが(3分で230トピックのオーダーの256kで読む)、不快です。

短所:

まだマイナスは見つかりませんでしたが、いずれにせよ、私が言及したものは私のお気に入りに会いました。これは230トピックを少し超えていません+私は複数のユーザーでテストしました

画像

まだ興味がある、 githubリンク

Windowsでスクリプトを実行するための手順、ありがとうdesiderata

1. Python 2.7.1 x86 ( 3.0 , x64 _imaging)
2. pisa 3.0.31 :
Windows Installer,
C:\python27\python.exe setup.py install
ReportLab Toolkit 2.5, html5lib 0.9, PyPdf 1.13, PIL 1.1.7, setuptools 0.6c11, pisa 3.0.33.
3. C:\Python27\Lib\site-packages\PIL\Image.py .
4. fav2pdf.py .
5. C:\Python27\python.exe fav2pdf.py
6. PROFIT .


PS作業の最後に、スクリプトはpisa_document.py "、行229、pisaDocumentでエラーを生成しました
それでも、PDFファイルは正常に作成され、お気に入りのすべての記事が含まれています。

PS
スクリプトの実行中に同様のエラーが発生した場合、PILパッチで処理されます。
File "/usr/lib/python2.6/dist-packages/PIL/Image.py", line 1498, in split
if self.im.bands == 1:
AttributeError: 'NoneType' object has no attribute 'bands'

解決策:
# HG changeset patch -- Bitbucket.org
# Project pil-2009-raclette
# URL bitbucket.org/effbot/pil-2009-raclette/overview
# User Fredrik Lundh <fredrik@effbot.org>
# Date 1272193085 -7200
# Node ID fb7ce579f5f96f7d9008f72ab03eef4f1c6db609
# Parent 45c2debe0fc3d9632372a15826b1b64a35ff43c4
Fixed split after open bug (regression in 1.1.7).

--- a/PIL/Image.py
+++ b/PIL/Image.py
@@ -1494,11 +1494,11 @@ class Image:
def split(self):
"Split image into bands"

+ self.load()
if self.im.bands == 1:
ims = [self.copy()]
else:
ims = []
- self.load()
for i in range(self.im.bands):
ims.append(self._new(self.im.getband(i)))
return tuple(ims)


PS2
私はレギュラーには全く強くありません。誰かがより最適な表現を求めるなら、感謝します。

Source: https://habr.com/ru/post/J111411/


All Articles