Quelqu'un pourrait-il m'aider avec cela? Je voudrais créer un bot qui reçoit le mot dans une langue, regarde dans la base de données, obtient la traduction et le renvoie. Comment je comprends que ce n'est pas possible sur les hébergements partagés, mais possible sur les propres serveurs ou VDS. Donc dois-je faire mon bot en utilisant des libs comme EventMachine et xmpp4r? Si oui comment travailler avec beaucoup de demandes en même temps?Ruby 24/7 XMPP bot de travail
0
A
Répondre
1
La réception d'un mot, la recherche dans la base de données et l'envoi de la réponse sont très simples. Votre bot doit accepter tous les nouveaux contacts et les ajouter à sa liste (liste de contacts).
Regardez ce code. J'ai écrit un bot comme "Google Bots" il utilise le service de traduction google.
require 'rubygems'
require 'xmpp4r-simple'
require 'yaml'
class MonBotTraducteur
def initialize(from='fr', to='en')
@url = 'http://ajax.googleapis.com/ajax/services/language/translate'
@from = from
@to = to
end
#
def connect
config= YAML::load(File.read('config/settings.yaml'))
@client = Jabber::Simple.new(config['settings']['jabber']['jid'],
config['settings']['jabber']['password'])
@client
end
# Translate the received message
def translate(text="")
params = {
:langpair => "#{@from}|#{@to}",
:q => text,
:v => 1.0
}
query = params.map{ |k,v| "#{k}=#{CGI.escape(v.to_s)}" }.join('&')
reponse = Net::HTTP.get_response(URI.parse("#{@url}?#{query}"))
repondre(reponse)
end
# Start the bot activity
def demarrer
while true
.received_messages do |msg|
translated_text = translate(msg.body)
@client.deliver(msg.from.to_s, translated_text.to_s)
end
sleep 1
end
end
private
# A method to send back the response
def repondre(reponse)
json = JSON.parse(reponse.body)
if json['responseStatus'] == 200
json['responseData']['translatedText']
else
raise(StandardError, response['responseDetails'])
end
end
end
bot = MonBotTraducteur.new
bot.connect
bot.demarrer
Ce bot reçoit des messages, les traduit en utilisant google service et les renvoie aux expéditeurs. PS: J'ai utilisé un fichier yaml pour le réglage. Meilleures salutations,
Qu'en est-il de la mémoire et du processeur utilisant cette méthode? Et qu'en est-il de nombreux messages en même temps? – user633230
Cela devrait aller dans une autre question. – kikito