Feature tracker¶
This page tracks the implementation of features or redesigns in PixivFE.
Features with broader scope have their own detailed write-ups under the dev/features
section.
Pixivision¶
Summary: Pixivision is a service owned by Pixiv that publishes articles about various types of artwork themes...
Notes
- Pixivision is an independent service. Most of the data comes from Pixivision's website.
- Pixivision does not provide an API for data access. Pages on Pixivision seems to be static, so the HTML could be easily parsed.
Thoughts
- Write a separate module for Pixivision and integrate it into PixivFE.
- We do web scraping and HTML parsing for this one.
Sketch¶
Summary: Sketch is a service owned by Pixiv that allow users to livestream, mostly for their drawing process.
Notes
- Sketch is an independent service. Most of the data comes from Pixivision's website.
- Sketch has a dedicated API for data access. Sketch uses the same type of authentication that Pixiv has.
- Detailed notes TBA.
Thoughts
- Thanks to the public API, pages could be build easily.
- For the streaming part, we may have to include a JavaScript library for HLS streaming.
VRoid Hub¶
Service owned by Pixiv, this time for 3D humanoid models.
Example page: スロウス 夏用 - VRoid Hub
Ugoira support¶
Summary: Ugoiras are Pixiv's "animated image" format.
Notes
- Ugoiras are basically a bunch of sorted images combined with a fixed delay for each of them.
- Pixiv provides one JSON endpoint for delays and filenames and one endpoint for the (ZIP) images archive.
- One has to write their own player based on things Pixiv provide.
- You can check out Pixiv's implementation on their own ugoira player here.
Thoughts
- GIF/APNG/WEBP renderer.
- Some people want to convert ugoiras to video formats? (no idea)
Landing page¶
Summary: PixivFE's homepage.
Notes
- Pixiv's homepage contains a lot of interesting content.
- PixivFE's backend for the landing page already implemented almost all of the data from Pixiv.
- The only thing left is to write the frontend for them.
- Detailed notes TBA.
Thoughts
- Spend some time to write some HTML/SCSS.
- Currently, you have to authenticate (login) in order to access the full landing page. Can we show the full page to unauthenticated users as well?
Popular artworks¶
Summary: Pixiv has a "Sort by views" and "Sort by bookmarks" feature that is only available for premium users.
Notes
- There are some search "hacks" that could yield relatively accurate results for popular artworks.
Ideas
- Look into repos that attempts to retrieve popular artworks
- If search "hacking" is possible, could there be more "hacks" around?
"User discovery" page¶
Summary: Like artwork discovery, but it is for users.
Notes
Currently, we do not know if we could implement the "user follow" function into PixivFE.The development for this page has been put on hold because of it, since "following", after all, is what you want to do if you discover an user you like.- User follow was implemented in
#129
using the API for mobile users viewing the Pixiv website (not the Pixiv app API).
Ideas
- It is easy to implement thanks to the API.
Search suggestions¶
Summary: Pixiv provides an API endpoint for search suggestions.
Notes
- The search suggestions appear when you focus on the search bar.
Ideas
- We can prefetch the search suggestions for every request on PixivFE. But this means we will have to add one request (to Pixiv's API) for each PixivFE page request. (Caching?)
- We can implement JavaScript to fetch the suggestions every time the user focuses on the search bar.
- We can create a separate page just for this.
App API support¶
Summary: Apart of the public AJAX API, Pixiv also provides a private API, used specifically for mobile applications.
Notes
- Because you already could do almost everything through the AJAX API, there is really no point to integrate the App API.
- I added this section because there are some limitations to the public API (following,...).
Ideas
- Write more stuff when desperate.
Novel page¶
Image grid layout¶
Series¶
Server's PixivFE Git version/commit¶
Summary: Implementation is essentially complete. However, the removal of .dockerignore
as a dirty workaround1 is unfortunate.
Ideas
Notes
-
Initial implementation by jackyzy823 in #104 (f53e1c3e4d) via a
REVISION
variable defined as the Git commit hash of HEAD at build time. -
The
REVISION
variable was modified to include both the commit date and hash in901286d98e
. -
A "dirty" flag is appended to the
REVISION
variable if there are uncommitted changes in7a9216a165
. -
The
.dockerignore
file was removed to prevent Docker image builds from always being flagged as "dirty" in436f4073ea
.
Download all buttons for all containers¶
Page profile¶
Download button in artwork page¶
Option to select default image quality in artwork page¶
Pixiv App API¶
Besides the web API, Pixiv also has a private API made specifically for mobile applications.
There are currently no official API specifications for the private API, and the unofficial ones seem to lack several functionalities. We might have to write one.
Examples of implementations:
Goal¶
- Separate the Web API core and the App API core, but make both of them compatible with each other.
- Complications...
Novels¶
This section tracks the implementation of features related to novels.
Category | Feature | Status | Notes |
---|---|---|---|
Functions | Novel series | ✅ | Completed a while ago as of 2024-10-14, and implemented for the Bootstrap rewrite |
UI | Furigana support | ❌ | |
UI | Reader settings panel | ❌ | Completed a long time ago as of 2024-10-14, but the Bootstrap rewrite has a buggy/unstable implementation |
UI | Novel page with vertical text if body.suggestedSettings.viewMode == 1 |
❌ | Completed a long time ago as of 2024-10-14, but the Bootstrap rewrite has a buggy/unstable implementation |
UI | Attributes | ❌ | |
UI | Recent novels from writers | ✅ | Completed during the Bootstrap rewrite, but has incomplete data from the Pixiv API |
UI | Page support | ❌ | |
UI | Recommended novels | ✅ | Completed a long time ago as of 2024-10-14 |
UI | Other works panel? | ❌ | |
Misc | Novel ranking | ❌ | |
Misc | Novel mode for any possible pages | ❌ |
Per-User Customization Options¶
Probably cookie-based.
site-wide¶
- sidebar close on history change or not #63
- navbar sticky or not
artwork¶
- native AI/R15/R18/R18-G... artwork filtering We can filter them out using values supplied by Pixiv for each artworks.
search¶
- add an option to do potentially very extensive searches Sort by bookmarks
-
No pun intended. ↩