Module: PonysAIResources

Defined in:
lib/ponys_ai_resources.rb

Constant Summary collapse

VERSION =
"0.3.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)


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

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)


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

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)


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

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)


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

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



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

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

.product_url(name = :homepage) ⇒ Object



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

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

.widget_manifest_urlObject



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

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