すべてがHabrを読みます。 そして私も含めて。 ただし、プロキシが閉じられると、プロキシへのアクセスが許可されます。 この点で、Habrの記事を読むことを可能にするようなことをすることが決定されました。
その結果、自宅のコンピューターで実行されているサービスが、Habréの新しい記事をチェックし、記事ヘッダーをメールに送信し、リクエストに応じて記事自体も送信します。 メールのみによるサービスとの通信。 カットの下の詳細。
サービスはホームコンピューターで実行されています。 サービスは、指定された期間の後に実行される4つのタスクを開始します。
- (15分ごと)ハブの新しい記事を確認します。 新しい記事の番号と名前はデータベースに保存されます
- (5分ごと)まだ送信されていない新しい記事の番号と名前を購読者に送信する
- (2分ごと)テストメールからリクエストを受信します。 リクエストはデータベースに保存されます
- (2分ごと)要求を処理し、送信者のメールに記事全体を送信する
タスクの詳細:
- 多くのハブがあり、すべての記事をダウンロードするのに非常に長い時間がかかりました。 テスト用に小さなリストが選択されました。 ハブは47個のみ。 最初のタスクを完了すると、サービスはハブの記事ページをダウンロードし、テキストを解析して、データベースに新しい記事を入れます(記事自体ではなく、タイトルと番号のみ)
- 2番目のタスクを完了すると、サービスはデータベースから新しい記事(まだ送信されていない)の番号と見出しを選択し、それらをすべてのサブスクライバーに送信します
- 3番目のタスクでは、特別なメールhabrpost@mail.ruから新しい手紙がダウンロードされます。 手紙の件名と送信者はデータベースに保存されます
- 4番目のタスクを完了すると、受け取った手紙の分析が行われます。 手紙の主題に応じて、課題の結果は次のようになる場合があります。
- 送信者はニュースレターを購読して、新しい記事の見出しを受け取ります
- 送信者の購読解除
- 送信者はメールで記事を受け取ります。 記事が既に以前にダウンロードされている場合、既にダウンロードされた記事が送信されます。 記事がまだダウンロードされていない場合、すべての画像とCSSスタイルを含むHTML +記事がダウンロードされます。 これらはすべてアーカイブにパッケージ化されています
- 送信者は新しくダウンロードされた記事をメールで受け取ります(以前にダウンロードされた記事であっても、記事は完全にダウンロードされます)
まあ、最も興味深い。 フィードバックをお待ちしております。 サービスをテストできます。 コマンドのリストは次のとおりです。
説明:
-habrpost@mail.ruに新しい手紙を書いてください。
-チームは手紙の件名に書かれています。
-チームは数字でのみ記録されます。
チームの説明:
1-ニュースレターを購読します(メールで新しい記事の名前を受け取ります)。
0-ニュースレターの購読を解除します。
123456-郵便番号123456を郵便で受け取る;
123456 1-記事番号123456を再ダウンロードして、メールで記事を受け取ります。
PS 10月10日、彼はサービスの作業を分析するためにサービスを停止しました。 結果は別の
記事で見つけることができます。