class Lita::Handlers::VrtMess

Handle the VRT Mess requests for the Lita.io bot

Public Instance Methods

daymenu() click to toggle source
# File lib/lita/handlers/vrt_mess.rb, line 33
def daymenu
  menu = fetch_menu
  result = format_day(menu)
  result = ['Geen menu gevonden :(', 'Kijk eens op https://rto365.sharepoint.com/sites/MijnEten'] if result.empty?
  result.join("\n")
end
fetch_menu(page = '') click to toggle source
# File lib/lita/handlers/vrt_mess.rb, line 53
def fetch_menu(page = '')
  page = HTTParty.get("http://ishetlekkerindemess.be/#{page}")
  json = Nokogiri::HTML(page).css('script#__NEXT_DATA__').text
  menu = JSON.parse(json, symbolize_names: true)
  menu[:props][:pageProps][:initialData]
end
format_day(menu) click to toggle source
# File lib/lita/handlers/vrt_mess.rb, line 40
def format_day(menu)
  result = []
  date = menu.delete(:date)
  return result if menu.empty?
  result << "Menu voor #{date}"
  menu.each do |name, value|
    value.strip!
    value = "geen #{name.downcase} :(" if value.empty?
    result << "#{name}: #{value}"
  end
  result
end
handle_mess(response) click to toggle source
# File lib/lita/handlers/vrt_mess.rb, line 13
def handle_mess(response)
  week = response.match_data[:w]
  if week == 'week'
    response.reply(weekmenu)
  else
    response.reply(daymenu)
  end
end
weekmenu() click to toggle source
# File lib/lita/handlers/vrt_mess.rb, line 22
def weekmenu
  result = []
  menus = fetch_menu 'week'
  menus.each do |menu|
    result << format_day(menu)
    result << '--------------------------' unless result.empty?
  end
  result = ['Geen menu gevonden :(', 'Kijk eens op https://rto365.sharepoint.com/sites/MijnEten'] if result.empty?
  result.join("\n")
end