pstream is dead; long live pstream taciturnaxolotl.github.io/pstream-ng/
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Refine latest features

+20 -11
+12 -7
src/pages/TopFlix.tsx
··· 64 64 <div className="flex"> 65 65 <p className="flex-1 font-bold text-white pr-5 pl-3"> 66 66 {link ? ( 67 - <p onClick={() => navigate(link)} className="hover:underline"> 67 + <p 68 + onClick={() => navigate(link)} 69 + className="cursor-pointer hover:underline" 70 + > 68 71 {props.name} 69 72 </p> 70 73 ) : ( 71 74 <p>{props.name}</p> 72 75 )} 73 76 </p> 74 - <p className="pr-3">{props.children}</p> 77 + <p className="pr-3 cursor-default">{props.children}</p> 75 78 </div> 76 - <p className="pr-5 pl-3"> 79 + <p className="pr-5 pl-3 cursor-default"> 77 80 {props.type.charAt(0).toUpperCase() + props.type.slice(1)} 78 81 </p> 79 82 <Divider marginClass="my-3" /> ··· 237 240 The most popular movies on sudo-flix.lol, this data is fetched from 238 241 the current backend deployment. 239 242 </Paragraph> 240 - <div className="mt-8 flex-col gap-2 w-auto"> 241 - <div className="bg-buttons-secondary rounded-xl scale-95 py-3 px-5 mb-2 inline-block"> 243 + <div className="mt-8 flex gap-2 w-auto"> 244 + <div className="bg-buttons-secondary rounded-xl scale-95 py-3 px-5 mb-2"> 242 245 <p className="font-bold bg-opacity-90 text-buttons-secondaryText"> 243 246 Server Lifetime: {timeSinceProcessStart} 244 247 </p> 245 248 </div> 246 - <div className="bg-buttons-secondary rounded-xl scale-95 py-3 px-5 mb-2 inline-block"> 249 + <div className="bg-buttons-secondary rounded-xl scale-95 py-3 px-5 mb-2"> 247 250 <p className="font-bold bg-opacity-90 text-buttons-secondaryText"> 248 251 Overall Views: {totalViews} 249 252 </p> ··· 282 285 > 283 286 Previous page 284 287 </Button> 285 - <div style={{ display: "flex", alignItems: "center" }}> 288 + <div 289 + style={{ display: "flex", alignItems: "center", cursor: "default" }} 290 + > 286 291 {currentPage}/{maxPageCount} 287 292 </div> 288 293 <Button
+7 -3
src/stores/banner/BannerLocation.tsx
··· 55 55 ); 56 56 } 57 57 58 - // This jawn is for advertising the extension for le 58 + // This jawn is for advertising the extension for le skids 59 59 export function ExtensionBanner(props: { 60 60 location?: string; 61 61 extensionState: ExtensionStatus; ··· 65 65 const currentLocation = useBannerStore((s) => s.location); 66 66 const loc = props.location ?? null; 67 67 const { pathname } = useLocation(); 68 + const isEligible = 69 + /CrOS/.test(navigator.userAgent) || 70 + /TV/.test(navigator.userAgent) || 71 + /iPhone|iPad|iPod/i.test(navigator.userAgent); 68 72 69 73 useEffect(() => { 70 74 if (loc) { ··· 83 87 if (currentLocation !== loc || pathname === "/onboarding/extension") 84 88 return null; 85 89 86 - // Show the banner with a 40% chance 87 - if (Math.random() < 0.4) { 90 + // Show the banner with a 50% chance or not if users dont meet requirements 91 + if (!isEligible && Math.random() < 0.5) { 88 92 let bannerText = ""; 89 93 switch (props.extensionState) { 90 94 case "noperms":
+1 -1
src/stores/language/index.tsx
··· 15 15 export const useLanguageStore = create( 16 16 persist( 17 17 immer<LanguageStore>((set) => ({ 18 - language: "en", 18 + language: navigator.language.split("-")[0], 19 19 setLanguage(v) { 20 20 set((s) => { 21 21 s.language = v;