gist: 456 Download_button fork
public
Description:
virtua.com.br bandwidth usage reporter (twitter bot)
Public Clone URL: git://gist.github.com/456.git
consumobot.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#!/usr/bin/ruby
# consumobot.rb - virtua.com.br bandwidth usage reporter (twitter bot)
# non-copyright (c) 2008 rodrigo franco <caffo@imap.cc>
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
# DEALINGS IN THE SOFTWARE.
#
#
# consumobot.rb - bot que envia informacoes sobre o
# consumo do virtua via twitter
#
 
# coloque aqui o mac address do seu modem
MAC_ADDRESS = '000000000000'
 
# configuracao do twitter
# esses dados NAO sao da sua conta no twitter
# crie uma conta nova e coloque os dados aqui.
# alem disso, certifique-se de que a nova conta
# o tem como 'follower' e que voce a
# 'segue' tambem
 
TWITTER_USER = 'foobar'
TWITTER_PASS = 'foobar'
TWITTER_RCPT = 'me'
 
 
# nao toque em nada daqui pra baixo :P
require 'rubygems'
require 'twitter' # twitter4r
require 'mechanize'
 
TWITTER = Twitter::Client.new(:login => TWITTER_USER, :password => TWITTER_PASS)
 
module ConsumoBot
  def self.retreive
    agent = WWW::Mechanize.new
    page = agent.post("http://consumo.virtua.com.br/consumo.php",
                          {
                            "macadd" => MAC_ADDRESS,
                            "mes" => "0#{Date.today.month}",
                            "ano" => "#{Date.today.year.to_s[2..3]}"
                           }
                        )
 
    doc = Hpricot(page.body)
    cells = doc.search(".onze")
 
    total = cells.last.inner_html
    upload = cells[cells.size-3].inner_html
    download = cells[cells.size-4].inner_html
    total_dia = cells[cells.size-2].inner_html
    data = cells[cells.size-5].inner_html
    raise Exception.new, "Informacao nao disponivel no site do virtua" if data == "Data"
    return "#{data}: #{download}d/#{upload}u (#{total_dia}) [#{total}]"
  end
 
  def self.exec
    TWITTER.message(:post, retrieve, TWITTER_RCPT)
  end
end
 
ConsumoBot.exec

Owner

caffo

Revisions