mirror of
https://git.sr.ht/~cadence/bibliogram
synced 2024-11-26 09:37:28 +00:00
Use block status to inform future request policy
This commit is contained in:
parent
d66d12e7da
commit
3adb0d0ac6
@ -87,6 +87,14 @@ async function fetchUser(username, context) {
|
|||||||
*/
|
*/
|
||||||
function fetchUserFromHTML(username) {
|
function fetchUserFromHTML(username) {
|
||||||
return userRequestCache.getOrFetch("user/"+username, false, true, () => {
|
return userRequestCache.getOrFetch("user/"+username, false, true, () => {
|
||||||
|
if (constants.caching.self_blocked_status.enabled) {
|
||||||
|
if (history.store.has("user")) {
|
||||||
|
const entry = history.store.get("user")
|
||||||
|
if (!entry.lastRequestSuccessful && Date.now() < entry.lastRequestAt + constants.caching.self_blocked_status.time) {
|
||||||
|
return Promise.reject(constants.symbols.RATE_LIMITED)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return switcher.request("user_html", `https://www.instagram.com/${username}/`, async res => {
|
return switcher.request("user_html", `https://www.instagram.com/${username}/`, async res => {
|
||||||
if (res.status === 301) throw constants.symbols.ENDPOINT_OVERRIDDEN
|
if (res.status === 301) throw constants.symbols.ENDPOINT_OVERRIDDEN
|
||||||
if (res.status === 302) throw constants.symbols.INSTAGRAM_DEMANDS_LOGIN
|
if (res.status === 302) throw constants.symbols.INSTAGRAM_DEMANDS_LOGIN
|
||||||
@ -110,7 +118,7 @@ function fetchUserFromHTML(username) {
|
|||||||
const existing = db.prepare("SELECT created, updated_version FROM Users WHERE username = ?").get(user.data.username)
|
const existing = db.prepare("SELECT created, updated_version FROM Users WHERE username = ?").get(user.data.username)
|
||||||
db.prepare(
|
db.prepare(
|
||||||
"REPLACE INTO Users (username, user_id, created, updated, updated_version, biography, post_count, following_count, followed_by_count, external_url, full_name, is_private, is_verified, profile_pic_url) VALUES "
|
"REPLACE INTO Users (username, user_id, created, updated, updated_version, biography, post_count, following_count, followed_by_count, external_url, full_name, is_private, is_verified, profile_pic_url) VALUES "
|
||||||
+"(@username, @user_id, @created, @updated, @updated_version, @biography, @post_count, @following_count, @followed_by_count, @external_url, @full_name, @is_private, @is_verified, @profile_pic_url)"
|
+"(@username, @user_id, @created, @updated, @updated_version, @biography, @post_count, @following_count, @followed_by_count, @external_url, @full_name, @is_private, @is_verified, @profile_pic_url)"
|
||||||
).run({
|
).run({
|
||||||
username: user.data.username,
|
username: user.data.username,
|
||||||
user_id: user.data.id,
|
user_id: user.data.id,
|
||||||
|
@ -63,6 +63,10 @@ let constants = {
|
|||||||
instance_list_cache_time: 3*60*1000,
|
instance_list_cache_time: 3*60*1000,
|
||||||
updater_cache_time: 2*60*1000,
|
updater_cache_time: 2*60*1000,
|
||||||
cache_sweep_interval: 3*60*1000,
|
cache_sweep_interval: 3*60*1000,
|
||||||
|
self_blocked_status: {
|
||||||
|
enabled: false,
|
||||||
|
time: 2*60*60*1000,
|
||||||
|
},
|
||||||
db_user_id: true,
|
db_user_id: true,
|
||||||
db_post_n3: true,
|
db_post_n3: true,
|
||||||
db_request_history: false
|
db_request_history: false
|
||||||
|
Loading…
Reference in New Issue
Block a user