mirror of
https://git.sr.ht/~cadence/bibliogram
synced 2024-11-16 05:07:29 +00:00
User pages now count for quota, as it should be.
This commit is contained in:
parent
5a1b0e88b2
commit
7acb21f613
@ -96,7 +96,9 @@ function fetchUserFromHTML(username) {
|
||||
}
|
||||
}
|
||||
}
|
||||
let quotaUsed = 0
|
||||
return userRequestCache.getOrFetch("user/"+username, false, true, () => {
|
||||
quotaUsed++
|
||||
return switcher.request("user_html", `https://www.instagram.com/${username}/feed/`, async res => {
|
||||
if (res.status === 301) throw constants.symbols.ENDPOINT_OVERRIDDEN
|
||||
if (res.status === 302) throw constants.symbols.INSTAGRAM_DEMANDS_LOGIN
|
||||
@ -153,7 +155,7 @@ function fetchUserFromHTML(username) {
|
||||
}
|
||||
throw error
|
||||
})
|
||||
}).then(user => ({user, quotaUsed: 0}))
|
||||
}).then(user => ({user, quotaUsed}))
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -13,6 +13,16 @@ function getPageTitle(post) {
|
||||
return (post.getCaptionIntroduction() || `Post from @${post.getBasicOwner().username}`) + " | Bibliogram"
|
||||
}
|
||||
|
||||
async function getUserAndQuota(req, username) {
|
||||
if (quota.remaining(req) === 0) {
|
||||
throw constants.symbols.QUOTA_REACHED
|
||||
}
|
||||
|
||||
const {user, quotaUsed} = await fetchUser(username)
|
||||
const remaining = quota.add(req, quotaUsed)
|
||||
return {user, remaining}
|
||||
}
|
||||
|
||||
function getPostAndQuota(req, shortcode) {
|
||||
if (quota.remaining(req) === 0) {
|
||||
throw constants.symbols.QUOTA_REACHED
|
||||
@ -101,8 +111,7 @@ module.exports = [
|
||||
throw constants.symbols.QUOTA_REACHED
|
||||
}
|
||||
|
||||
const {user, quotaUsed} = await fetchUser(username)
|
||||
let remaining = quota.add(req, quotaUsed)
|
||||
let {user, remaining} = await getUserAndQuota(req, username)
|
||||
|
||||
const selectedTimeline = user[type]
|
||||
let pageNumber = +params.get("page")
|
||||
|
@ -79,8 +79,12 @@ class NextPage extends FreezeWidth {
|
||||
this.freeze(this.element.getAttribute("data-loading-text"))
|
||||
const type = this.element.getAttribute("data-type")
|
||||
|
||||
return fetch(`/fragment/user/${this.element.getAttribute("data-username")}/${this.nextPageNumber}?type=${type}`).then(res => res.text()).then(text => {
|
||||
quota.change(-1)
|
||||
return fetch(`/fragment/user/${this.element.getAttribute("data-username")}/${this.nextPageNumber}?type=${type}`).then(res => {
|
||||
if (res.status === 200) {
|
||||
quota.change(-1)
|
||||
}
|
||||
return res.text()
|
||||
}).then(text => {
|
||||
q("#next-page-container").remove()
|
||||
this.observer.disconnect()
|
||||
q("#timeline").insertAdjacentHTML("beforeend", text)
|
||||
|
@ -19,4 +19,7 @@ html
|
||||
| To prevent bot abuse, all users on proxy networks share the same request quota.
|
||||
|
|
||||
|
|
||||
| If you are automatically collecting data from Bibliogram, please do not!
|
||||
| #[a(href="https://git.sr.ht/~cadence/bibliogram-docs/tree/master/docs/Installing%20%28basic%29.md") You can easily run your own copy with no quota.] / #[a(href="https://cadence.moe/contact") Get in touch if you want help? <3]
|
||||
|
|
||||
|
|
||||
|
Loading…
Reference in New Issue
Block a user