Module: PonysAIResources

Defined in:
lib/ponys_ai_resources.rb,
lib/ponys_ai_resources/characters/ari.rb,
lib/ponys_ai_resources/characters/ava.rb,
lib/ponys_ai_resources/characters/eli.rb,
lib/ponys_ai_resources/characters/eve.rb,
lib/ponys_ai_resources/characters/joe.rb,
lib/ponys_ai_resources/characters/kai.rb,
lib/ponys_ai_resources/characters/leo.rb,
lib/ponys_ai_resources/characters/mei.rb,
lib/ponys_ai_resources/characters/na1.rb,
lib/ponys_ai_resources/characters/na2.rb,
lib/ponys_ai_resources/characters/na3.rb,
lib/ponys_ai_resources/characters/na4.rb,
lib/ponys_ai_resources/characters/nyx.rb,
lib/ponys_ai_resources/characters/rin.rb,
lib/ponys_ai_resources/characters/sue.rb,
lib/ponys_ai_resources/characters/wen.rb,
lib/ponys_ai_resources/characters/yui.rb,
lib/ponys_ai_resources/characters/coco.rb,
lib/ponys_ai_resources/characters/eira.rb,
lib/ponys_ai_resources/characters/emma.rb,
lib/ponys_ai_resources/characters/hana.rb,
lib/ponys_ai_resources/characters/hina.rb,
lib/ponys_ai_resources/characters/jace.rb,
lib/ponys_ai_resources/characters/lyra.rb,
lib/ponys_ai_resources/characters/meow.rb,
lib/ponys_ai_resources/characters/miko.rb,
lib/ponys_ai_resources/characters/mila.rb,
lib/ponys_ai_resources/characters/nana.rb,
lib/ponys_ai_resources/characters/noah.rb,
lib/ponys_ai_resources/characters/nuwa.rb,
lib/ponys_ai_resources/characters/rami.rb,
lib/ponys_ai_resources/characters/rika.rb,
lib/ponys_ai_resources/characters/roro.rb,
lib/ponys_ai_resources/characters/ruby.rb,
lib/ponys_ai_resources/characters/vava.rb,
lib/ponys_ai_resources/characters/yuna.rb,
lib/ponys_ai_resources/characters/zoey.rb,
lib/ponys_ai_resources/characters/akari.rb,
lib/ponys_ai_resources/characters/dasha.rb,
lib/ponys_ai_resources/characters/jaxon.rb,
lib/ponys_ai_resources/characters/kiara.rb,
lib/ponys_ai_resources/characters/liana.rb,
lib/ponys_ai_resources/characters/lynne.rb,
lib/ponys_ai_resources/characters/mason.rb,
lib/ponys_ai_resources/characters/mulan.rb,
lib/ponys_ai_resources/characters/naomi.rb,
lib/ponys_ai_resources/characters/noxie.rb,
lib/ponys_ai_resources/characters/rovie.rb,
lib/ponys_ai_resources/characters/rowan.rb,
lib/ponys_ai_resources/characters/tessa.rb,
lib/ponys_ai_resources/characters/yuwei.rb,
lib/ponys_ai_resources/characters/adrian.rb,
lib/ponys_ai_resources/characters/aeroha.rb,
lib/ponys_ai_resources/characters/amanda.rb,
lib/ponys_ai_resources/characters/anthea.rb,
lib/ponys_ai_resources/characters/astrid.rb,
lib/ponys_ai_resources/characters/aubrey.rb,
lib/ponys_ai_resources/characters/change.rb,
lib/ponys_ai_resources/characters/darius.rb,
lib/ponys_ai_resources/characters/hassan.rb,
lib/ponys_ai_resources/characters/hatice.rb,
lib/ponys_ai_resources/characters/kurose.rb,
lib/ponys_ai_resources/characters/miyuki.rb,
lib/ponys_ai_resources/characters/mizuki.rb,
lib/ponys_ai_resources/characters/nefara.rb,
lib/ponys_ai_resources/characters/odette.rb,
lib/ponys_ai_resources/characters/phuwin.rb,
lib/ponys_ai_resources/characters/safira.rb,
lib/ponys_ai_resources/characters/sophie.rb,
lib/ponys_ai_resources/characters/soyeon.rb,
lib/ponys_ai_resources/characters/suzuki.rb,
lib/ponys_ai_resources/characters/zhixia.rb,
lib/ponys_ai_resources/characters/haitang.rb,
lib/ponys_ai_resources/characters/hiokimi.rb,
lib/ponys_ai_resources/characters/ji-hoon.rb,
lib/ponys_ai_resources/characters/monique.rb,
lib/ponys_ai_resources/characters/moretti.rb,
lib/ponys_ai_resources/characters/natalie.rb,
lib/ponys_ai_resources/characters/rosario.rb,
lib/ponys_ai_resources/characters/valeria.rb,
lib/ponys_ai_resources/characters/vanessa.rb,
lib/ponys_ai_resources/characters/vincent.rb,
lib/ponys_ai_resources/characters/clarissa.rb,
lib/ponys_ai_resources/characters/guixiang.rb,
lib/ponys_ai_resources/characters/emberveil.rb,
lib/ponys_ai_resources/characters/kirishima.rb,
lib/ponys_ai_resources/characters/sera-park.rb,
lib/ponys_ai_resources/characters/pixi-vayne.rb,
lib/ponys_ai_resources/characters/zaria-cole.rb,
lib/ponys_ai_resources/characters/elsie-bloom.rb,
lib/ponys_ai_resources/characters/han-so-yeon.rb,
lib/ponys_ai_resources/characters/sofia-maren.rb,
lib/ponys_ai_resources/characters/camila-reyes.rb,
lib/ponys_ai_resources/characters/chloe-monroe.rb,
lib/ponys_ai_resources/characters/maribel-cruz.rb,
lib/ponys_ai_resources/characters/marisol-vega.rb,
lib/ponys_ai_resources/characters/marlene-hart.rb,
lib/ponys_ai_resources/characters/zuri-bennett.rb,
lib/ponys_ai_resources/characters/aaliyah-banks.rb,
lib/ponys_ai_resources/characters/camila-duarte.rb,
lib/ponys_ai_resources/characters/ethan-caldwell.rb,
lib/ponys_ai_resources/characters/dr-lucia-moreno.rb,
lib/ponys_ai_resources/characters/summer-st-claire.rb,
lib/ponys_ai_resources/characters/character-43449110.rb

Defined Under Namespace

Modules: Characters

Constant Summary collapse

VERSION =
"0.4.0"
PRODUCTS =
{
  homepage: "https://ponys.ai/",
  discover: "https://ponys.ai/discover",
  create: "https://ponys.ai/create",
  character_generator: "https://ponys.ai/ai-character-generator",
  image_generator: "https://ponys.ai/ai-image-generator",
  video_generator: "https://ponys.ai/ai-video-generator",
  ai_girlfriend: "https://ponys.ai/ai-girlfriend",
  ai_boyfriend: "https://ponys.ai/ai-boyfriend"
}.freeze
LOCALES =
%w[en ja ko zh-tw zh-cn es pt-br].freeze
CHARACTERS =
JSON.parse(
  File.read(File.join(__dir__, "ponys_ai_resources", "characters.json"))
).freeze

Class Method Summary collapse

Class Method Details

.character_feed_url(locale = "en") ⇒ Object

Raises:

  • (ArgumentError)


42
43
44
45
46
# File 'lib/ponys_ai_resources.rb', line 42

def self.character_feed_url(locale = "en")
  raise ArgumentError, "unsupported locale" unless LOCALES.include?(locale)

  "https://feeds.ponys.ai/characters/#{locale}.json"
end

.character_url(slug) ⇒ Object

Raises:

  • (ArgumentError)


24
25
26
27
28
29
# File 'lib/ponys_ai_resources.rb', line 24

def self.character_url(slug)
  record = CHARACTERS.find { |character| character["slug"] == slug.to_s.downcase }
  raise ArgumentError, "unknown character: #{slug}" unless record

  record.fetch("url")
end

.creator_url(product = :discover, publisher:, locale: "en") ⇒ Object

Raises:

  • (ArgumentError)


56
57
58
59
60
61
62
63
64
65
66
# File 'lib/ponys_ai_resources.rb', line 56

def self.creator_url(product = :discover, publisher:, locale: "en")
  raise ArgumentError, "unsupported locale" unless LOCALES.include?(locale)

  query = URI.encode_www_form(
    utm_source: publisher,
    utm_medium: "affiliate",
    utm_campaign: "creator_resources",
    utm_content: locale
  )
  "#{product_url(product)}?#{query}"
end

.feed_url(locale = "en", format = "json") ⇒ Object

Raises:

  • (ArgumentError)


35
36
37
38
39
40
# File 'lib/ponys_ai_resources.rb', line 35

def self.feed_url(locale = "en", format = "json")
  raise ArgumentError, "unsupported locale" unless LOCALES.include?(locale)
  raise ArgumentError, "format must be json or xml" unless %w[json xml].include?(format)

  "https://feeds.ponys.ai/feeds/#{locale}.#{format}"
end

.open_data_catalog_urlObject



52
53
54
# File 'lib/ponys_ai_resources.rb', line 52

def self.open_data_catalog_url
  "https://feeds.ponys.ai/open-data/catalog.json"
end

.product_url(name = :homepage) ⇒ Object



31
32
33
# File 'lib/ponys_ai_resources.rb', line 31

def self.product_url(name = :homepage)
  PRODUCTS.fetch(name.to_sym)
end

.widget_manifest_urlObject



48
49
50
# File 'lib/ponys_ai_resources.rb', line 48

def self.widget_manifest_url
  "https://feeds.ponys.ai/api/benchmark-widget.json"
end