module Realnick

Constants

VERSION

realnick version

Public Class Methods

fetch(method = 'popular_anime') click to toggle source

Main method. With this you fetch a nick based on the method. Available methods: popular_anime, top_anime, upcoming_anime, just_added_anime

# File lib/realnick.rb, line 13
def fetch(method = 'popular_anime')
  methods = ['popular_anime', 'top_anime', 'upcoming_anime']
  raise ArgumentError, 'method not found' unless methods.include? method

  case method
  when 'top_anime'
    @url = 'http://mal-api.com/anime/top'
  when 'popular_anime'
    @url = 'http://mal-api.com/anime/popular'
  when 'upcoming_anime'
    @url = 'http://mal-api.com/anime/upcoming'
  end

  anime = JSON.parse(open(@url).read).sample
  url = URI::encode("http://myanimelist.net/anime/#{anime['id']}/#{anime['title']}/characters")

  characters = parse_characters(url)

  # randomize a little more by adding a suffix
  characters.shuffle.map{ |c|
    c << ["", "-san", "-sama", "-sensei"].sample
  }
end

Private Class Methods

parse_characters(url) click to toggle source

parse characters from MyAnimeList

# File lib/realnick.rb, line 39
def parse_characters(url)
  #@search = 'td[class="borderClass bgColor2"]'
  @search = 'div[style="padding: 0 7px;"] td[width="27"] a img'
  d = Nokogiri::HTML(open(url).read)
  d.css(@search).map do |c|
    c.attribute('alt').to_s.split(/(?:\s*(?:,|\s|\')\s*)+/).shuffle.join("-").downcase
  end
end