Un robot twitter avec Ruby

August 8th, 2011 | by | uncategorized

Aug
08

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 »

Che Guevara SoArt’rip

June 6th, 2011 | by | music, video

Jun
06

Le samedi 4 juin 2011 était un moyen pour moi de découvrir la magie du monde du cinéma dans les studios QUINTA PRODUCTION. La magie a été poussé à travers des jeunes talents tel que cette jeune fille avec sa guitare.

No Comments »

Google +1

June 2nd, 2011 | by | geek, web

Jun
02

Google offre enfin le moyen pour les utilisateurs du web d’inclure dans leurs pages le fameux “+1″ capable de rendre le moteur de recherche plus à l’écoute de ses utilisateurs.
Pour cela, il faut passer par la page http://www.google.com/intl/fr/webmasters/+1/button/ ou vous pourriez configurer votre bouton. Par la suite
l’ajouter à vos page à travers une section pour le header :

  1. <script type="text/javascript" src="http://apis.google.com/js/plusone.js"></script>

et une autre pour votre contenu :

  1. <g:plusone></g:plusone>

Pour ce qui est de WordPress, j’ai ajouté pour pouvoir dynamiser l’url au niveau Main Index Template(de mon contenu):

  1. <g:plusone size="medium" href="<?php the_permalink() ?>"></g:plusone>

Sinon une section plusones est disponible au niveau des profils Google pour pouvoir avoir une idée sur les votes d’une personne https://profiles.google.com/nihedmm/plusones.

No Comments »

TEDxCarthage pour iPhone

April 21st, 2011 | by | geek, iphone

Apr
21

L’application TEDxCarthage pour iPhone fut lancé pour l’event afin d’offrir des services tel que des informations sur la nature de l’évènement et des participants, les volontaires et le programme. Pour le développement, nous avons utilisé l’outil Appcelerator Titanium™.
Appcelerator Titanium™ est une platforme libre capable d’offrir des applications desktop et mobile en utilisant le langage JavaScript. Pour le mobile, il offre le support l’iPhone et de l”android (la version blackberry est encore en beta test pour les possesseurs d’un compte pro chez la compagnie Appcelerator). On n’a pas besoin d’apprendre le langage Objective-C pour utiliser cette plateforme mais l’avoir serait un plus.
Lors de la génération d’un projet, un répertoire Ressources est crée contenant le travail qui sera transmit vers les cibles que l’utilisateur aura définit à la configuration. Personnellement, pour l’exploitation de ce répertoire, j’utilise l’outil TextMate que je trouve le mieux adapté pour les utilisateurs Mac.
Le fichier principale (l’équivalent du main pour les autres langages) est app.js.
Je vous laisse le soin de tester l’application TEDx Carth et prêt à répondre à toutes vos questions techniques.

PS: le code utilisé pour l’application iPhone a été reprise par l’équipe Android pour livrer leur application.

No Comments »