2016-10-01 4 views
-1

Ich mache einen Witz Bot für Tumblr, die auf Frage-Fragesteller mit einer Variation von "Grüße [Fragesteller Namen hier], Pisse. Mit freundlichen Grüßen Pissy Boy . " Ich versuche, 4 mögliche Antworten anstelle von nur einer einzigen Antwort einzubeziehen, wo ich einen Haken gefunden habe. Hier ist die Gesamtheit meiner aktuellen Code für den Bot (Der Bot geschrieben wird mit Ruby in Ubuntu):Ich brauche Hilfe meinen Bot zu bekommen, eine andere Antwort jedes Mal zu antworten

require 'tumblr_client' 
USERNAME = "thepissbot" 
def piss 
    # Authenticate via OAuth 
    client = Tumblr::Client.new({ 
    :consumer_key => ENV['CONSUMER_KEY'], 
    :consumer_secret => ENV['CONSUMER_SECRET'], 
    :oauth_token => ENV['OAUTH_TOKEN'], 
    :oauth_token_secret => ENV['OAUTH_TOKEN_SECRET'] 
    }) 
    # Make the request 
    asks = client.submissions(USERNAME, limit: 5)['posts'] 
    asks.each do |ask| 
    if ask ['type'] !='answer' 
     piss 
     return 
     response1 = "Greetings #{ask['asking_name']}, piss. Yours truly, Pissy Boy." 
     response2 = "Dear, #{ask['asking_name']}, piss. Love, Pissy Boy." 
     response3 = "Salutations #{ask['asking_name']}, piss. Sincerely, Pissy Boy." 
     response4 = "What's up, #{ask['asking_name']}? Piss. Your friend, Pissy Boy." 
     array=(response1 response2 response3 response4) 
     tags = "piss mail" 
     client.edit(USERNAME, 
     id: ask['id'], 
     answer: array, 
     state: 'published', 
     tags: tags 
    ) 
    end 
    end 
end 

Diese angeblich „funktioniert“, entsprechend dem Terminal. Wenn ich jedoch den Posteingang für den Bot überprüfe, bleibt die Testfrage, die ich gesendet habe, unbeantwortet, und das ist sicherlich kein erwartetes Verhalten. Ich denke, es hat etwas damit zu tun, wie ich mit dem Array umgehe. Das ist seit 2 Tagen ein Problem ... Ich denke, es sollte super einfach sein, aber ich vermisse nur etwas. Jede Hilfe wäre willkommen.

+1

können Sie den Einzug des Codes beheben? –

+0

Das ist eigentlich, wie ich es geschrieben habe ... –

+2

... warum? Wird der Whitespace-Charakter berechnet? – jonrsharpe

Antwort

1

Ok jetzt, dass Ihr Code formatiert ist richtig der Fehler liegt auf der Hand:

if ask ['type'] !='answer' 
    piss 
    return 
    ... (some other code) 

diese early Rückkehr wird die gesamte piss Verfahren führen zu beenden. Es sei denn, es gibt einen Zweck zu diesem return Anruf entfernen Sie es.

Dies sollte die Vorteile des Formatierungscodes offensichtlich machen; Sie können einfacher sehen, welche if, each, def blockieren eine Zeile Code ausgeführt wird.

+0

Ich entfernte den 'Return'-Anruf und führte ihn erneut aus und er reagierte immer noch nicht auf die Frage. Es sitzt immer noch in meinem Posteingang. Aber das macht Sinn ... Ich kann nicht glauben, dass ich das früher nicht verstanden habe ... Ups. –

+0

Sind Sie sicher, dass 'answer' ein Array und keine Zeichenkette wie' array.sample' sein sollte? Ich kenne die Tumblr-API nicht, daher kann ich dir nicht weiter helfen. –

+0

Es zu 'array.sample' zu ​​machen scheint es auch nicht zu reparieren ... Danke, dass du es versucht hast. –

Verwandte Themen