buy clomid online

Aug 8

Un robot twitter avec Ruby

Category: Uncategorized

Rien de mieux qu’un petit robot twitter pour répondre au demandes de vos amis. Mon idée était de permettre à travers un robot de répondre à des questions mathématiques à savoir résoudre des expressions simples. du genre :

#nihedcalcul 3+5

Par la suite pour ce genre de projet, rien de mieux que Ruby qui offre une énorme bibliothèque de gem’s capable de vous aider dans presque n’importe quelle intégration.
Le résultat est ce code bien commenté (j’espère):

  1. require ‘rubygems’
  2. require ‘twitter’
  3. require ‘mysql’
  4. #configuration Oauth
  5. Twitter.configure do |config|
  6.   config.consumer_key = ‘consumer_key’
  7.   config.consumer_secret = ‘consumer_secret’
  8.   config.oauth_token = ‘oauth_token’
  9.   config.oauth_token_secret = ‘oauth_token_secret’
  10. end
  11. #instantiation des objets
  12. client = Twitter::Client.new
  13. search = Twitter::Search.new
  14. #connexion à la base de donnée
  15. dbh = Mysql.real_connect("127.0.0.1", "user", "password", "database")
  16. puts "\n"
  17. #recherche des requêtes
  18. search.containing("#nihedcalcul").result_type("recent").each do |r|
  19.   puts "#{r.from_user}: #{r.id}"
  20.   #enlèvement des caractères superflux
  21.   req=r.text.gsub(/[@%#a-zA-Z]/,"")
  22.   #recherche si la requête a été traité
  23.   res=dbh.query("select count(*) count from sa7achribtek where id=’#{r.id}’");
  24.  
  25.   if(res.fetch_hash["count"].to_s== "1")
  26.     puts "existe"  
  27.   else
  28.     puts "n’existe pas #{req}"
  29.     #Cas non traité
  30.     begin
  31.       #Répondre au tweeple
  32.       client.update("@#{r.from_user} #{req}="+eval(req).to_s)
  33.       puts("@#{r.from_user} #{req}="+eval(req).to_s)
  34.       #mecanisme d’exception de ruby
  35.     rescue Exception=>e
  36.       begin
  37.       client.update("@#{r.from_user}  yezzi e7chem")
  38.       puts("@#{r.from_user} yezzi e7chem ")
  39.       rescue Exception=>e1
  40.       end
  41.     end
  42.     dbh.query("insert into sa7achribtek values(‘#{r.id}’)");
  43.   end  
  44. end
  45. #fermeture de la base
  46. dbh.close if dbh
  47. print ‘end of work’
  48.  

j’attends vos commentaire et questions

3 comments

3 Comments so far

  1. Ahmed August 9th, 2011 9:09 am

    Cool 🙂

  2. Name * August 10th, 2011 2:57 pm

    Cool !!!! 🙂

  3. Senny26 September 26th, 2011 1:20 am

    Bonjour !

    Je trouve ça exellent :). Tu as l’air de toucher ta bille en codage, j’aimerais te poser quelques questions concernant les robots twitter, si tu acceptes, envoies moi un mail

    Merci d’avance 🙂

Leave a comment