@zero_zaki_ghost ということなんですが、他にいい方法ないですかねーw
@zero_zaki_ghost favouritesのコードと同じでいいんで、ひっぱってきてMastodon.pyを書き換えちゃえばいいんですけど、なんか手軽にできますよ! にならないので……。
まず、フォークします! からはじめたくないw
@zero_zaki_ghost 鯖缶じゃなくてユーザー向けの、簡易スクリプトを紹介しようっていう目的のものなので、さすがにElasticsearchのAPIはたたけない……(ダダ漏れ)
@noellabo www たし🦀。fedibirdに独自実装するんじゃなくて、みんな宛てなんですね。
@zero_zaki_ghost まぁぶっちゃけ今晩閉鎖する社畜丼向けなんで、動けばなんでもいいんですがw
Mastodon v3.3.0からはブックマークエクスポートもうついてるんで、本当に用途限られてるんですよね。
@noellabo paramsで件数指定できないんですかね?(githubのコードちょっと見ただけなのできちんと理解していませんが
@popn_ja params、なぜかbookmarksにだけついてないんですよ。Mastodon側はもちろん対応してますが、Mastodon.pyがw
@noellabo こいつですよね?
https://github.com/halcy/Mastodon.py/blob/master/mastodon/Mastodon.py
limitは違うのか?内部でparams読んでいるような気もするが。
@popn_ja これがbookmarksのとこで
https://github.com/halcy/Mastodon.py/blob/e9d2c3d53f7b1d371e5dc5bf47e5fe335b698c85/mastodon/Mastodon.py#L1632
こっちがfavouritesです
https://github.com/halcy/Mastodon.py/blob/e9d2c3d53f7b1d371e5dc5bf47e5fe335b698c85/mastodon/Mastodon.py#L1478
パラメータの処理が書いてない。
もちろんなおすのは簡単なんですが、私がやるんじゃなくて、記事をみた人がやる想定なので、ちょっと避けたいって感じです。
@popn_ja そして、記事の方はこういう感じです。
https://blog.noellabo.jp/entry/2021/03/07/153405
もう面倒くさいから公開しちゃったw
@noellabo function上書きというかそういうのできないんですかね?>python。まあ、そこの部分だけコード追加するのと同じになっちゃいますが。
@popn_ja rubyみたいなことできるのかなー。そこまでよく分かってないですw
@noellabo わたしも理解できていませんが、
return self.__api_request('GET', '/api/v1/bookmarks')
の部分が本体なので、
params = self.__generate_params(locals())
return self.__api_request('GET', '/api/v1/bookmarks, params)
のdefを上書きできればできそうですよね。selfがダメなのかな?
@popn_ja オブジェクトに外からメソッド追加できればいいんですが……もうちょっとやってみるか
@noellabo ちょっとこっちでも試行錯誤してみますねー
@noellabo こんな感じで作ってみましたー
import csv
from mastodon import Mastodon
class Mastodon2(Mastodon):
def test(self, limit=None):
params = super()._Mastodon__generate_params(locals())
return super()._Mastodon__api_request('GET', '/api/v1/bookmarks', params)
pass
mastodon = Mastodon2(
access_token = '',
api_base_url = 'https://popon.pptdn.jp'
)
toots = mastodon.test(100)
あと同じなので省略。
@popn_ja おかげさまでなんとかなりました!
https://fedibird.com/@noellabo/105848489969959147
@noellabo おー、よかったです!
@noellabo ああ、bookmarksか
@noellabo ElasticsearchのAPIでブックマーク管理する方法がある、ってはんさんが言ってたんですけど、それだとラクなんですかね。僕は中身見てないので分からないですが。