* Update rubocop-todo.yml with new violations * Fix Layout/EmptyLine* rules * Fix Layout/Indentation* rules * Fix remaining Layout/* rules * Fix Lint/DuplicateMethods by removing unused accessor * Fix Lint/IneffectiveAccessModifier * Fix Lint/MissingCopEnableDirective * Re-run rubocop auto gen config * Fix Layout/RescueEnsureAlignment * Fix Naming/* rules * Fix some RSpec/* rules * Fix typos * Fix RSpec/LetBeforeExamples * Series should only be an attr_writer, not an attr_accessor * Fix RSpec/InstanceVariable * Fix RSpec/InstanceVariable * Fix RSpec/RepeatedDescription and RSpec/RepeatedExample * Fix Style/ClassAndModuleChildren * Fix Style/ConditionalAssignment * Fix some Style/* rules * Trigger Travis CI build because failing tests are not failing locally * Revert "Fix Style/ClassAndModuleChildren" This reverts commit 1686801d8a1516ba1894f79e24401a20dea65f99.
30 lines
787 B
Ruby
30 lines
787 B
Ruby
class LanguageDetector
|
|
def initialize(article)
|
|
@article = article
|
|
end
|
|
|
|
def detect
|
|
response = get_language
|
|
response["result"] if response["confidence"] > 0.8
|
|
rescue StandardError
|
|
nil
|
|
end
|
|
|
|
def get_language
|
|
return { "result" => "en", "confidence" => 0.9 } unless Rails.env.production?
|
|
|
|
client = Algorithmia.client(ApplicationConfig["ALGORITHMIA_KEY"])
|
|
algo = client.algo("miguelher/LanguageDetector/0.1.0")
|
|
algo.pipe(text).result
|
|
end
|
|
|
|
def text
|
|
@article.title + "\n" +
|
|
non_default_description.to_s +
|
|
FrontMatterParser::Parser.new(:md).call(@article.body_markdown).content.split("`")[0]
|
|
end
|
|
|
|
def non_default_description
|
|
@article.description + "\n" unless @article.description.include? "From the DEV community"
|
|
end
|
|
end
|