require 'net/http'
require 'uri'
require 'json'
def turkish(guess)
# Girdi kelimeyi UTF-8 olarak encode edelim
guess_utf8 = guess.downcase.encode('UTF-8')
# URL içine yerleştirirken doğru encode edelim
encoded_guess = URI.encode_www_form_component(guess_utf8)
url = URI("https://sozluk.gov.tr/gts?ara=#{encoded_guess}")
# HTTP GET isteğini elle yönetmek bazen daha stabil sonuç verir
response = Net::HTTP.start(url.host, url.port, use_ssl: true) do |http|
request = Net::HTTP::Get.new(url)
# JSON istediğimizi belirtelim
request['Accept'] = 'application/json'
http.request(request)
end
# İstek başarılıysa (200 OK)
if response.is_a?(Net::HTTPSuccess)
# Gelen cevabı UTF-8'e zorlayalım
body = response.body
body.force_encoding('UTF-8')
puts "API Yanıtı: #{body}"
begin
data = JSON.parse(body)
# TDK APIsi başarıyla kelime döndürdüyse Array şeklinde gelir
if data.is_a?(Array) && !data.empty?
check_guess(guess) # Bu metod size ait, burada doğru kelime işlemlerini yapın
return true
# Sonuç bulunamadı ise genelde { "error" => "Sonuç bulunamadı" } döner
elsif data.is_a?(Hash) && data['error'] == 'Sonuç bulunamadı'
return false
else
# Beklenmeyen yanıt olursa
return false
end
rescue JSON::ParserError => e
puts "JSON çözümleme hatası: #{e.message}. Lütfen kelimeyi tekrar girin."
return false
end
else
# HTTP durum kodu 200 dışında bir şeyse
puts "HTTP Hata: #{response.code} - #{response.message}"
return false
end
endBunu dener misin?