A03ki / uecbbs

@uec_bbsを支えるPythonパッケージTwissifyの管理
https://twitter.com/uec_bbs
MIT License
0 stars 0 forks source link

`Timeline`を`tweepy.api.API`の各メソッドを使えるクラスに変更する #47

Closed A03ki closed 4 years ago

A03ki commented 4 years ago

前提

Timelinewith文を使って、ツイートを取得した後リツイートをすると以下のコードになる。

with Timeline(api, storage) as tl:
    home_timeline_ids = tl.get_home_timeline_ids
    tweets = tl.home_timeline(count=200, since_id=home_timeline_ids.since_id, max_id=home_timeline_ids.max_id)
    api.retweet(tweets[0].id)  # tlだけでなくapiが必要

問題点

Timelineを使うとき、tlapiで使い分けなくてはいけないのが面倒。

解決策

例えば、以下のようにapiと同機能が使えて、一部のメソッドにだけsince_idmax_idを保存する箇所を追加する方が便利だと思う。

with APIWrapper(api, storage) as apiw:
    home_timeline_ids = apiw.get_home_timeline_ids
    tweets = apiw.home_timeline(count=200, since_id=home_timeline_ids.since_id, max_id=home_timeline_ids.max_id)
    apiw.retweet(tweets[0].id)  # apiwだけでいい

また、機能がタイムラインだけに収まらないのでAPIWrapperと変える必要がある。

https://github.com/A03ki/uecbbs/issues/34#issuecomment-635730966