1

私は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変数を無視します..私はこれをあらゆる方法でひねりました。

4

0 に答える 0