楽々優待がfeedly対応しました

技術系

この度、楽々優待がfeedly対応しました。現段階では株主優待に変更があった場合にお知らせされるようになっています。

楽々優待はDjango frameworkを使って実装しているのですが、feed機能の実装にはDjangoがサポートする機能を利用しました。Djangoはドキュメントが充実しており、今回の実装もサンプルを真似るだけで簡単でした。

ただ1点、下記のサンプルコードのNewsItem modelについての説明が無く、分かりづらかったので自分の理解を書いておきます。

from django.contrib.syndication.views import Feed
from django.urls import reverse
from policebeat.models import NewsItem

class LatestEntriesFeed(Feed):
    title = "Police beat site news"
    link = "/sitenews/"
    description = "Updates on changes and additions to police beat central."

    def items(self):
        return NewsItem.objects.order_by('-pub_date')[:5]

    def item_title(self, item):
        return item.title

    def item_description(self, item):
        return item.description

    # item_link is only needed if NewsItem has no get_absolute_url method.
    def item_link(self, item):
        return reverse('news-item', args=[item.pk])

ドキュメントには記載されていませんが、おそらく以下のようなNewsItem modelが定義されているのだと思います。items()が返すobjectがitem_title(), item_description(), item_link()の引数であるitemの集合体となっており, item_title()等が各feedのタイトルや内容、URLを設定していると解釈しました。このサンプルはblogを想定したコードみたいですが、汎用的なmodelを定義すれば、様々なfeedを返せるのではないかと思っています。

class NewsItem(models.Model):
    title = models.CharField()
    description = models.TextField()    
    pub_date = models.DateTimeField()

feed機能さえ出来てしまえば、あとはFeedly buttonの作成ページでURL等を入力するだけでhtmlが作成されますので、templateに記載するだけです。便利ですね。

現時点では優待の変更等のみを通知していますが、通知できる情報の種類を増やし、利便性を向上させたいと思いますので、ぜひ登録をお願いします。

コメント

タイトルとURLをコピーしました