diff --git a/locales/en-US.json b/locales/en-US.json
index d44a8827..3f42a509 100644
--- a/locales/en-US.json
+++ b/locales/en-US.json
@@ -64,8 +64,6 @@
"User ID": "User ID",
"Password": "Password",
"Time (h:mm:ss):": "Time (h:mm:ss):",
- "Text CAPTCHA": "Text CAPTCHA",
- "Image CAPTCHA": "Image CAPTCHA",
"Sign In": "Sign In",
"Register": "Register",
"E-mail": "E-mail",
diff --git a/src/invidious/routes/login.cr b/src/invidious/routes/login.cr
index d0f7ac22..e7de5018 100644
--- a/src/invidious/routes/login.cr
+++ b/src/invidious/routes/login.cr
@@ -21,9 +21,6 @@ module Invidious::Routes::Login
account_type = env.params.query["type"]?
account_type ||= "invidious"
- captcha_type = env.params.query["captcha"]?
- captcha_type ||= "image"
-
templated "user/login"
end
@@ -88,34 +85,14 @@ module Invidious::Routes::Login
password = password.byte_slice(0, 55)
if CONFIG.captcha_enabled
- captcha_type = env.params.body["captcha_type"]?
answer = env.params.body["answer"]?
- change_type = env.params.body["change_type"]?
- if !captcha_type || change_type
- if change_type
- captcha_type = change_type
- end
- captcha_type ||= "image"
-
- account_type = "invidious"
-
- if captcha_type == "image"
- captcha = Invidious::User::Captcha.generate_image(HMAC_KEY)
- else
- captcha = Invidious::User::Captcha.generate_text(HMAC_KEY)
- end
-
- return templated "user/login"
- end
+ account_type = "invidious"
+ captcha = Invidious::User::Captcha.generate_image(HMAC_KEY)
tokens = env.params.body.select { |k, _| k.match(/^token\[\d+\]$/) }.map { |_, v| v }
- answer ||= ""
- captcha_type ||= "image"
-
- case captcha_type
- when "image"
+ if answer
answer = answer.lstrip('0')
answer = OpenSSL::HMAC.hexdigest(:sha256, HMAC_KEY, answer)
@@ -124,27 +101,8 @@ module Invidious::Routes::Login
rescue ex
return error_template(400, ex)
end
- else # "text"
- answer = Digest::MD5.hexdigest(answer.downcase.strip)
-
- if tokens.empty?
- return error_template(500, "Erroneous CAPTCHA")
- end
-
- found_valid_captcha = false
- error_exception = Exception.new
- tokens.each do |tok|
- begin
- validate_request(tok, answer, env.request, HMAC_KEY, locale)
- found_valid_captcha = true
- rescue ex
- error_exception = ex
- end
- end
-
- if !found_valid_captcha
- return error_template(500, error_exception)
- end
+ else
+ return templated "user/login"
end
end
diff --git a/src/invidious/user/captcha.cr b/src/invidious/user/captcha.cr
index 8a0f67e5..b175c3b9 100644
--- a/src/invidious/user/captcha.cr
+++ b/src/invidious/user/captcha.cr
@@ -4,8 +4,6 @@ struct Invidious::User
module Captcha
extend self
- private TEXTCAPTCHA_URL = URI.parse("https://textcaptcha.com")
-
def generate_image(key)
second = Random::Secure.rand(12)
second_angle = second * 30
@@ -60,19 +58,5 @@ struct Invidious::User
tokens: {generate_response(answer, {":login"}, key, use_nonce: true)},
}
end
-
- def generate_text(key)
- response = make_client(TEXTCAPTCHA_URL, &.get("/github.com/iv.org/invidious.json").body)
- response = JSON.parse(response)
-
- tokens = response["a"].as_a.map do |answer|
- generate_response(answer.as_s, {":login"}, key, use_nonce: true)
- end
-
- return {
- question: response["q"].as_s,
- tokens: tokens,
- }
- end
end
end
diff --git a/src/invidious/views/user/login.ecr b/src/invidious/views/user/login.ecr
index 2b03d280..7ac96bc6 100644
--- a/src/invidious/views/user/login.ecr
+++ b/src/invidious/views/user/login.ecr
@@ -25,44 +25,17 @@
<% end %>
<% if captcha %>
- <% case captcha_type when %>
- <% when "image" %>
- <% captcha = captcha.not_nil! %>
-
- <% captcha[:tokens].each_with_index do |token, i| %>
-
- <% end %>
-
-
-
- <% else # "text" %>
- <% captcha = captcha.not_nil! %>
- <% captcha[:tokens].each_with_index do |token, i| %>
-
- <% end %>
-
-
- ">
+ <% captcha = captcha.not_nil! %>
+
+ <% captcha[:tokens].each_with_index do |token, i| %>
+
<% end %>
+
+
-
- <% case captcha_type when %>
- <% when "image" %>
-
- <% else # "text" %>
-
- <% end %>
<% else %>