eyecatch thumbnail

パレオチャンネルブロマガ過去記事全集の作り方

Profile picture
ルッチ / Lucci
2020.10.12

Contents


はじめに

先日 パレオチャンネルブロマガ過去記事全集 という記事を投稿しました. その記事の制作過程を紹介したいと思います.

パレオチャンネルブロマガ過去記事全集 を書く時に Gmail API を使いました. Gmail API を叩く時に使った言語は python です. Gmail API の基本的な使い方や gmail 自作ライブラリの使い方は #gmail に譲るとして,メインの処理に絞って紹介したいと思います.

それでは参りましょう!

実装方針

実装は次の要求を満たすようにしました.

実装方法

実装方針が決まったので具体的に実装していきました.

ソースコード全文をご覧になりたい方は次の3ファイルを読んでください.

以下では,次の3つの処理に絞って説明します.

  • 送信者が 鈴木祐 のメールを取得する処理
  • メール本文のデコード処理
  • ブロマガへのリンクの挿入処理

特定の送信者からのメールを取得する方法

特定の送信者からのメールだけに絞るにはクエリーに from:NAME を指定してあげれば良いです. (Gmail で使用できる検索演算子)

今回はパレオな兄貴こと 鈴木祐 さんが送信者のメールだけフィルタリングしたいので次のように書けば良いです.

  # Get messages list
  msgs = gmail.get_messages(service, userid="me", query="from:鈴木祐")

メール本文のデコード処理

Gmail API で取得したメール本文をデコード処理する方法 – Python 編 をお読みください.

本記事の一部分として扱うにはボリュームがあるので分離させました.

ブロマガへのリンク追加処理

ブロマガへのリンクの追加方法は原始的でして パレオチャンネルブロマガ過去記事全集 (2019年2月~)manuscript.md 内にブロマガの URL が無ければ ## ブロマガ全集 ブロックにリンクを追加するようにしました.

まぁ,こんな実装ですがきちんと動いているので今のところ満足ですね.

D-Lab にブロマガ機能を実装する予定とのことで,心待ちにしています. パレオチャンネルブロマガ過去記事全集 (2019年2月~) には関連する記事を集めたりとか記事検索かけたりする機能はないので. チーム DaiGo の活動を期待しています!

def main():
  ...
  # Add blogpost link
  for msg in reversed(msgs):
    msg_ = gmail.get_message(service, msg)
    blogpost_subject = get_blogpost_subject(msg_)
    blogpost_url = get_blogpost_url(msg_)
    if not is_included(manuscript_file, blogpost_url):
      add_blogpost(manuscript_file, blogpost_subject, blogpost_url)
  print("End of the script.")


def add_blogpost(manuscript, subject, url):
  """Add blogpost to manuscript"""
  line_number = 0
  with open(manuscript, "r") as file:
    lines = file.readlines()
  for line in lines:
    if ("## ブロマガ全集" in line):
      lines.insert(line_number + 2, f"- [{subject}]({url})\n")
      with open(manuscript, "w") as file:
        file.writelines(lines)
      print("Add:", subject)
      return 0
    line_number += 1

おわりに

パレオチャンネルブロマガ過去記事全集 (2019年2月~) の作り方の紹介でした.

へっぽこな実装でも公開していく過程で自分自身からフィードバックをもらえるので記事にしてみました.

たぶんほとんどの人がこの記事は読まないでしょう. もしもこの記事をここまで読んでくれた方がいたら,その人とは友達になれる気がします.笑

最後までお読みいただきありがとうございました.

お手紙 お待ちしております!

愛用品

  • Xiser Pro Trainer
    1日中踏み続けられる強靭なステッパーでおすすめです.
  • HHKB Professional 墨 x HHKB キートップセット 白
    ボディは墨色キートップは白色なのでめちゃめちゃ目に優しいのでおすすめです.
  • Apple Magic Mouse 2
    トラックパッドは指が攣りそうになりますけどマウスはその心配が無いのでおすすめです.
  • Apple MacMini
    ミニマルでパワフルなデスクトップ PC なので個人的に大好きなのでおすすめです.
  • iiyama Display 27inch FullHD
    鮮明すぎない画面で目も疲れにくいですし何より高さ調節できるのが最高なのでおすすめです.
  • KINTO UNITEA 550ml
    500ml の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.

関連記事


Python 初学者へのお知らせ

約2時間で Python の基礎を学び、簡単なゲームを作ってみませんか?

そんな方に、Python の基本を実践的に学びたい人向けの講座、【無料】ゼロから始めるPythonプログラミング入門講座(週4開催)をお勧めします。

tech-ad-techgym-python

この講座で、無料でゲーム開発を通してプログラミングの基礎を身につけてみませんか?

少しでも気になった方は、上記のテキストリンクもしくは画像リンクから申し込みお願いします!

Python との楽しい日々をお過ごしください:)