Contents
はじめに
先日 パレオチャンネルブロマガ過去記事全集 という記事を投稿しました. その記事の制作過程を紹介したいと思います.
パレオチャンネルブロマガ過去記事全集 を書く時に Gmail API を使いました.
Gmail API を叩く時に使った言語は python
です.
Gmail API の基本的な使い方や gmail
自作ライブラリの使い方は #gmail に譲るとして,メインの処理に絞って紹介したいと思います.
それでは参りましょう!
実装方針
実装は次の要求を満たすようにしました.
鈴木祐
からのメールだけを取得する- メール本文から記事タイトルと記事 URL を取得する
- 取得したタイトルと URL を パレオチャンネルブロマガ過去記事全集 に書き出す
実装方法
実装方針が決まったので具体的に実装していきました.
ソースコード全文をご覧になりたい方は次の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 の大容量でこの綺麗なデザインは他にみたことがないのでおすすめです.