функция времени () (питон) - PullRequest
0 голосов
/ 12 апреля 2011
    if data.find('!google') != -1:
     nick = data.split('!')[ 0 ].replace(':','')
     if last_google + 5 > time.time():
        sck.send('PRIVMSG ' + chan + " :" + ' Wait a few seconds' + "\r\n")
     else:
           last_google = time.time()
           try:
                gs = GoogleSearch(args)
                gs.results_per_page = 1
                results = gs.get_results()
                for res in results:
                    sck.send('PRIVMSG ' + chan + " " + res.title.encode("utf8") + '\r\n')
                    sck.send('PRIVMSG ' + chan + " " + res.url.encode("utf8") + '\r\n')
                    print
           except SearchError, e:
                    sck.send('PRIVMSG ' + chan + " " + "Search failed: %s" % e + " " + '\r\n')

Хорошо. Я пытаюсь заставить сценарий подождать несколько секунд, прежде чем другой пользователь сможет "! Google" запретить пользователям затоплять канал или бот.неправильная функция времени или я что-то упустил

1 Ответ

0 голосов
/ 12 апреля 2011

Это все в цикле?

Одна из проблем заключается в том, что вы установили last_google на time.time () в начале вашего запроса. Если запрос медленный, часть этого времени может уже уйти к тому времени, когда вы снова получите оператор if.

Типичный ожидающий блок может выглядеть примерно так:

while time.time() < last_google + 5:
    sleep(1) # You don't want to keep using the cpu, so let your process sleep
...