私はpython twitterツールを使用して自動化しています(ツイートをお気に入りに自動的に追加するなど)。これはとても便利なので、「Mojito」というオープンソースのプログラムにしようと思いました。問題は、私が python/django の専門家ではないことです。ここで立ち往生しています。
これは、mKeyword (Twitter で検索するキーワード) と mCount (ツイート数) の 2 つの変数を収集するために使用するフォームです。
from django import forms
class GetVariables(forms.Form):
mKeyword = forms.CharField(max_length=100)
mCount = forms.IntegerField(max_value=100, min_value=1)
次に、python-twitter-tools の auto_fav 関数を使用する「mojitoform」関数があります。どちらも以下です。
def mojitoform (request):
try:
form = GetVariables(request.POST)
if form.is_valid():
mKeyword = form.cleaned_data['mKeyword']
mCount = form.cleaned_data['mCount']
success = True
tweets = auto_fav( mKeyword, mCount)['text']
except:
notLoggedIn = True
return render (request, '../templates/dashboard.html', locals())
これは "auto_fav()" と "search_tweets()" 関数です:
def auto_fav(q, count=100, result_type="recent"):
"""
Favorites tweets that match a certain phrase (hashtag, word, etc.)
"""
result = search_tweets(q, count, result_type)
for tweet in result["statuses"]:
try:
# don't favorite your own tweets
if tweet["user"]["screen_name"] == TWITTER_HANDLE:
continue
result = t.favorites.create(_id=tweet["id"])
print("favorited: %s" % (result["text"].encode("utf-8")))
# when you have already favorited a tweet, this error is thrown
except TwitterHTTPError as e:
print("error: %s" % (str(e)))
def search_tweets(q, count=100, result_type="recent"):
return t.search.tweets(q=q, result_type=result_type, count=count)
私の問題は、mojitoform を実行すると、「mCount」変数が考慮されないことです。お気に入りに登録されるツイートは毎回 1 つだけです。シェルで実行するとauto_fav()スクリプトが正常に機能するため、これは奇妙ですが、djangoでは常にmCount変数を無視します..私はこれをあらゆる方法でひねりました。