Don't pass HTTP client in args

This commit is contained in:
Omar Roth 2018-12-15 12:05:52 -06:00
parent 843606db65
commit d0b30ad977
3 changed files with 20 additions and 29 deletions

View file

@ -152,8 +152,7 @@ before_all do |env|
end end
else else
begin begin
client = make_client(YT_URL) user = get_user(sid, headers, PG_DB, false)
user = get_user(sid, client, headers, PG_DB, false)
challenge, token = create_response(user.email, "sign_out", HMAC_KEY, PG_DB, 1.week) challenge, token = create_response(user.email, "sign_out", HMAC_KEY, PG_DB, 1.week)
env.set "challenge", challenge env.set "challenge", challenge
@ -825,8 +824,7 @@ post "/login" do |env|
sid = login.cookies["SID"].value sid = login.cookies["SID"].value
client = make_client(YT_URL) user = get_user(sid, headers, PG_DB)
user = get_user(sid, client, headers, PG_DB)
# We are now logged in # We are now logged in
@ -1286,8 +1284,7 @@ get "/subscription_manager" do |env|
headers = HTTP::Headers.new headers = HTTP::Headers.new
headers["Cookie"] = env.request.headers["Cookie"] headers["Cookie"] = env.request.headers["Cookie"]
client = make_client(YT_URL) user = get_user(user.id[0], headers, PG_DB)
user = get_user(user.id[0], client, headers, PG_DB)
end end
action_takeout = env.params.query["action_takeout"]?.try &.to_i? action_takeout = env.params.query["action_takeout"]?.try &.to_i?
@ -1297,12 +1294,10 @@ get "/subscription_manager" do |env|
format = env.params.query["format"]? format = env.params.query["format"]?
format ||= "rss" format ||= "rss"
client = make_client(YT_URL)
subscriptions = [] of InvidiousChannel subscriptions = [] of InvidiousChannel
user.subscriptions.each do |ucid| user.subscriptions.each do |ucid|
begin begin
subscriptions << get_channel(ucid, client, PG_DB, false) subscriptions << get_channel(ucid, PG_DB, false)
rescue ex rescue ex
next next
end end
@ -1391,8 +1386,7 @@ post "/data_control" do |env|
user.subscriptions.select! do |ucid| user.subscriptions.select! do |ucid|
begin begin
client = make_client(YT_URL) get_channel(ucid, PG_DB, false, false)
get_channel(ucid, client, PG_DB, false, false)
true true
rescue ex rescue ex
false false
@ -1421,8 +1415,7 @@ post "/data_control" do |env|
user.subscriptions.select! do |ucid| user.subscriptions.select! do |ucid|
begin begin
client = make_client(YT_URL) get_channel(ucid, PG_DB, false, false)
get_channel(ucid, client, PG_DB, false, false)
true true
rescue ex rescue ex
false false
@ -1438,8 +1431,7 @@ post "/data_control" do |env|
user.subscriptions.select! do |ucid| user.subscriptions.select! do |ucid|
begin begin
client = make_client(YT_URL) get_channel(ucid, PG_DB, false, false)
get_channel(ucid, client, PG_DB, false, false)
true true
rescue ex rescue ex
false false
@ -1456,8 +1448,7 @@ post "/data_control" do |env|
user.subscriptions.each do |ucid| user.subscriptions.each do |ucid|
begin begin
client = make_client(YT_URL) get_channel(ucid, PG_DB, false, false)
get_channel(ucid, client, PG_DB, false, false)
rescue ex rescue ex
next next
end end
@ -1482,8 +1473,7 @@ post "/data_control" do |env|
user.subscriptions.select! do |ucid| user.subscriptions.select! do |ucid|
begin begin
client = make_client(YT_URL) get_channel(ucid, PG_DB, false, false)
get_channel(ucid, client, PG_DB, false, false)
true true
rescue ex rescue ex
false false
@ -1567,8 +1557,7 @@ get "/subscription_ajax" do |env|
if !user.subscriptions.includes? channel_id if !user.subscriptions.includes? channel_id
PG_DB.exec("UPDATE users SET subscriptions = array_append(subscriptions,$1) WHERE email = $2", channel_id, email) PG_DB.exec("UPDATE users SET subscriptions = array_append(subscriptions,$1) WHERE email = $2", channel_id, email)
client = make_client(YT_URL) get_channel(channel_id, PG_DB, false, false)
get_channel(channel_id, client, PG_DB, false, false)
end end
when .starts_with? "action_remove" when .starts_with? "action_remove"
PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions,$1) WHERE email = $2", channel_id, email) PG_DB.exec("UPDATE users SET subscriptions = array_remove(subscriptions,$1) WHERE email = $2", channel_id, email)
@ -1708,8 +1697,7 @@ get "/feed/subscriptions" do |env|
headers["Cookie"] = env.request.headers["Cookie"] headers["Cookie"] = env.request.headers["Cookie"]
if !user.password if !user.password
client = make_client(YT_URL) user = get_user(user.id[0], headers, PG_DB)
user = get_user(user.id[0], client, headers, PG_DB)
end end
max_results = preferences.max_results max_results = preferences.max_results

View file

@ -21,7 +21,9 @@ class ChannelVideo
}) })
end end
def get_channel(id, client, db, refresh = true, pull_all_videos = true) def get_channel(id, db, refresh = true, pull_all_videos = true)
client = make_client(YT_URL)
if db.query_one?("SELECT EXISTS (SELECT true FROM channels WHERE id = $1)", id, as: Bool) if db.query_one?("SELECT EXISTS (SELECT true FROM channels WHERE id = $1)", id, as: Bool)
channel = db.query_one("SELECT * FROM channels WHERE id = $1", id, as: InvidiousChannel) channel = db.query_one("SELECT * FROM channels WHERE id = $1", id, as: InvidiousChannel)

View file

@ -116,12 +116,12 @@ class Preferences
}) })
end end
def get_user(sid, client, headers, db, refresh = true) def get_user(sid, headers, db, refresh = true)
if db.query_one?("SELECT EXISTS (SELECT true FROM users WHERE $1 = ANY(id))", sid, as: Bool) if db.query_one?("SELECT EXISTS (SELECT true FROM users WHERE $1 = ANY(id))", sid, as: Bool)
user = db.query_one("SELECT * FROM users WHERE $1 = ANY(id)", sid, as: User) user = db.query_one("SELECT * FROM users WHERE $1 = ANY(id)", sid, as: User)
if refresh && Time.now - user.updated > 1.minute if refresh && Time.now - user.updated > 1.minute
user = fetch_user(sid, client, headers, db) user = fetch_user(sid, headers, db)
user_array = user.to_a user_array = user.to_a
user_array[5] = user_array[5].to_json user_array[5] = user_array[5].to_json
@ -140,7 +140,7 @@ def get_user(sid, client, headers, db, refresh = true)
end end
end end
else else
user = fetch_user(sid, client, headers, db) user = fetch_user(sid, headers, db)
user_array = user.to_a user_array = user.to_a
user_array[5] = user_array[5].to_json user_array[5] = user_array[5].to_json
@ -162,7 +162,8 @@ def get_user(sid, client, headers, db, refresh = true)
return user return user
end end
def fetch_user(sid, client, headers, db) def fetch_user(sid, headers, db)
client = make_client(YT_URL)
feed = client.get("/subscription_manager?disable_polymer=1", headers) feed = client.get("/subscription_manager?disable_polymer=1", headers)
feed = XML.parse_html(feed.body) feed = XML.parse_html(feed.body)
@ -172,7 +173,7 @@ def fetch_user(sid, client, headers, db)
channel_id = channel["href"].lstrip("/channel/") channel_id = channel["href"].lstrip("/channel/")
begin begin
channel = get_channel(channel_id, client, db, false, false) channel = get_channel(channel_id, db, false, false)
channels << channel.id channels << channel.id
rescue ex rescue ex
next next