Quicksearch
Syndicate This Blog
Creative Commons
Show tagged entries
Blog Administration
This plugin now depends on the Amazon Media Button event plugin. Please install the plugin and configure it to connect to Amazon.
Test
Twitter to Jabber gateway
Ever since Twitter decided to close their Jabber-gateway I was looking for a solution that allowed me to use Twitter over Jabber again. Same days ago I stumbled over a ruby script by dkam, that perfectly fits my needs. Because I'm following quite a few german Twitterers I had some problems with ugly HTML entities like:
Weiß hier jemand ob der iPod Touch 1G Mikros unterstützt?So I decided to take my non-existent ruby skils and extend dkam's script to jabber me the full UTF8 glory. So here's my result of a little bit of hacking:
- #!/usr/bin/ruby
- require 'rubygems'
- require 'xmpp4r-simple'
- require 'twitter'
- require 'benchmark'
- require 'cgi'
- require 'htmlentities'
- jabber_user="jabber-user@luusa.org"
- jabber_pass="password"
- $receiving_jabber = "user@jabber.ccc.de"
- twitter_user="obama"
- twitter_pass="change!"
- jabber = twitter = nil
- cj = Benchmark.realtime {jabber = Jabber::Simple.new(jabber_user, jabber_pass)}
- puts "Connecting to Jabber: #{cj}"
- ct = Benchmark.realtime {twitter = Twitter::Base.new(twitter_user, twitter_pass) }
- puts "Connecting to Twitter: #{ct}"
- def filters(status)
- if status.user.name == "MelbTransport"
- yield if status.text =~ /Craigieburn|Broadmeadows|Upfield/
- else
- coder = HTMLEntities.new
- status.text = coder.decode(status.text)
- yield
- end
- end
- def get_tweets(twitter, tweets, jabber)
- begin
- twitter.timeline.reverse.each do |s|
- if tweets[s.id].nil?
- filters(s) { jabber.deliver($receiving_jabber, "#{s.user.screen_name} says: #{s.text}") }
- tweets[s.id] = "Sent"
- end
- end
- rescue Twitter::CantConnect
- puts "Can't connect. Sleeping."
- sleep 120
- retry
- end
- end
- def post_tweets(twitter, jabber)
- jabber.received_messages { |msg| twitter.post(msg.body) if msg.type == :chat }
- end
- def main(twitter, jabber)
- tweets = {}
- while true
- puts "Action!"
- get_tweets(twitter, tweets, jabber)
- post_tweets(twitter, jabber)
- sleep 60
- end
- end
- main(twitter, jabber)
(Page 1 of 1, totaling 1 entries)








