Compare commits

...

2 Commits

Author SHA1 Message Date
Cadence Ember 7acb21f613
User pages now count for quota, as it should be. 2022-05-06 16:14:58 +12:00
Cadence Ember 5a1b0e88b2
Specify Cantarell font and add font files 2022-05-06 15:33:01 +12:00
9 changed files with 34 additions and 8 deletions

View File

@ -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}))
}
/**

View File

@ -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")

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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)

View File

@ -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]
|
|

View File

@ -5,16 +5,24 @@ $theme: () !default
@font-face
font-family: "Bariol"
font-display: swap
font-display: swap // prefer a fallback font until the font file is loaded
src: url(/static/fonts/bariol.woff2) format("woff2"), url(/static/fonts/bariol.ttf) format("truetype")
@each $weight in normal, bold
@font-face
font-family: "Cantarell"
font-weight: $weight
src: url(/static/fonts/cantarell-#{$weight}.woff2) format("woff2"), url(/static/fonts/cantarell-#{$weight}.ttf) format("truetype")
font-display: swap // prefer a fallback font until the font file is loaded
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD // from google fonts definition, https://fonts.googleapis.com/css2?family=Cantarell
body
font-family: "Bariol", sans-serif
body.use-boring-font
// this is useful so that cyrillic and other scripts don't look conspicuous compared to nearby latin letters.
// the use-boring-font class is activated based on the page and heuristics of its contents
font-family: sans-serif
font-family: "Cantarell", sans-serif
input, button, textarea
font-family: inherit
@ -34,7 +42,7 @@ body
@media screen and (min-width: $layout-b-min)
display: grid
grid-template-columns: 235px 1fr
grid-template-columns: 250px 1fr
.pfp
border-radius: 50%