Comments (4)
Phanpy's behaviour for followed hashtags should be similar to Ivory; only show hashtag indicator for posts from non-following accounts (not including boosted posts, group posts, own posts, etc). These are the steps:
- Pull in and store all followed hashtags (locally).
- When loading posts in the timeline, find all posts that contain followed hashtags, grab the posts' accounts, (batch-)check their relationships (following or not).
- Add hashtag indicator for posts from non-following accounts.
Unlike Ivory showing 1 hashtag, Phanpy shows max 3 hashtags (unordered, magic number), as a post could contain more than 1 followed hashtags.
Nevertheless, this (including any form of contextual indicators) is better done in the backend API in my opinion. On the client-side (Phanpy, and all other clients), the above implementation is honestly quite hacky and tedious just to show one indicator on the post.
from mastodon.
There's a long standing ticket for this, which I know the team knows about, because it was part of my interview with Mastodon gGmbH last June.
it's just really difficult to fix without requiring an extremely expensive complete rebuild of everyone's timelines (on larger instances this could take days or weeks).
it's gonna need a really interesting solution to solve it in a live/rolling migration way, that doesn't wipe out everyone's feeds.
the place to start looking is in app/lib/feed_manager.rb
from mastodon.
Plenty of apps do this client side. Here’s Phanpy.social showing a post from a followed hashtag, a post from a follow, and a bunch of boosts from my follows. Note the subtle colouring also denoting which is which.
from mastodon.
I'm gunna ask @cheeaun to explain phanpy's behaviour, but basically the timelines returned from the mastodon API do not include why something is in the timeline.
Apps like phanpy just try to guess why, by pulling in all your followed hashtags & hoping that's why the post was inserted into the timeline feed or ranked where it was.
To properly implement this with the timeline API returning back context for "why" is a major engineering lift because it has to be done extremely carefully.
from mastodon.
Related Issues (20)
- `tootctl accounts migrate` not documented HOT 2
- Replace `react-hotkeys` HOT 2
- Replace `react-motion`
- Replace `react-notification`
- Seperate Local and Remote cache storage locations/Buckets
- Support Remote Unicode Usernames
- Add "Keep Interacted" flag to `tootctl media remove`, add UI Element
- Re-render toots with delayed embeded data
- Common Issue list / Duplicated issues
- Custom emoji shortcode name with the same as a unicode emoji shortcode causes the Web UI to put the unicode emoji instead
- Animated webp profile picture HOT 1
- URL of "boosts" is "/reblogs"
- Image file size needlessly increases HOT 2
- In Memoriam accounts should not be allowed in follow recommendations
- When blocking a user, add a prompt to ask whether or not they should also be muted (and vice versa) HOT 2
- Connect existing account in database to OpenID Connect account at a configured IdP
- [Research] Trade-offs on `SafeReblogConcern` monkey patch vs other approaches HOT 1
- Upgrading from v4.2.8 to v4.2.9: TypeError: URL.canParse is not a function HOT 1
- Incorrect “last used on” date on authorized apps page
- Revise Webhook Management UI
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mastodon.