From 686e17f489b05dfb2114db529eb68d5db51e888c Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Thu, 26 Jul 2018 10:20:15 -0500 Subject: [PATCH] Add fix to switch to supported authentication schemes --- src/invidious.cr | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/invidious.cr b/src/invidious.cr index 2cc34d61..b16af9a4 100644 --- a/src/invidious.cr +++ b/src/invidious.cr @@ -1124,7 +1124,18 @@ post "/login" do |env| if challenge_results[0][-1][0].as_a? # Prefer Authenticator app and SMS over unsupported protocols - tfa = challenge_results[0][-1][0].as_a.select { |auth_type| auth_type[8] == 6 || auth_type[8] == 9 }[0] + if challenge_results[0][-1][0][0][8] != 6 || challenge_results[0][-1][0][0][8] != 9 + tfa = challenge_results[0][-1][0].as_a.select { |auth_type| auth_type[8] == 6 || auth_type[8] == 9 }[0] + select_challenge = "[#{challenge_results[0][-1][0].as_a.index(tfa).not_nil!}]" + + tl = challenge_results[1][2] + + tfa = client.post("/_/signin/selectchallenge?TL=#{tl}", headers, login_req(inputs, select_challenge)).body + tfa = tfa[5..-1] + tfa = JSON.parse(tfa)[0][-1] + else + tfa = challenge_results[0][-1][0][0] + end if tfa[2] == "TWO_STEP_VERIFICATION" if tfa[5] == "QUOTA_EXCEEDED"