2013-11-02 2 views
1

Я пишу очень маленькую программу, которую я хотел бы запустить на своем RPI в задании cron. Каждый час я хочу проверить статус веб-страницы. Если статус соответствует определенным критериям, я хочу, чтобы он выслал мне электронное письмо.Ruby gmail gem и сохранение учетных данных

В прошлом я успешно использовал gmail gem, но мне всегда приходилось предоставлять мои учетные данные. Я нервничаю из-за хранения моих учетных данных gmail в файле. Кто-нибудь знает, как выполнить эту задачу более надежно?

Конечная цель: я хочу, чтобы в моем почтовом ящике было отправлено электронное письмо, в котором говорится, что статус шлюза изменился на веб-сайте, который я контролирую.

Вот то, что я до сих пор

#!/usr/bin/ruby 
require 'open-uri' 
require 'nokogiri' 


def check_gates 
    doc = Nokogiri::HTML(open('http://www.summitatsnoqualmie.com/Mountains/Grooming-Report')) 
    gates = {} 

    table_rows = doc.xpath('//tr') 

    sections = [] 

    sections.push({:gate => "Elevator", :data => table_rows.select { |tr| tr.inspect.include? "Lower Traverse" }.first}) 
    sections.push({:gate => "Nash", :data => table_rows.select { |tr| tr.inspect.include? "Upper Traverse" }.first}) 

    sections.each do |section| 
     status_text = section[:data].element_children.select { |child| child.inspect.include? "grooming_open_status" }.first.inspect 
     match = status_text.match(/background-position:\ (\d+)px\ (.\d)+px/) 

     gate_down = false 

     unless match.nil? 
      gate_down = match[1].to_i == 0 and match[2].to_i == 0 
     end 

     gates[section[:gate]] = gate_down ? "CLOSED" : "OPEN" 

    end 

    gates 
end 

ответ

1

Generate an application-specific password for your Google account, и сохранить этот пароль на сервере.

+0

Я попробую это завтра. Спасибо, Мигарь! – Beaon

+0

У меня не было возможности попробовать это, но все еще планирую. Надеюсь, позже сегодня или завтра. – Beaon

+0

Отлично работает. благодаря – Beaon

Смежные вопросы