SYMBOL INDEX (225 symbols across 79 files) FILE: pwa.config.ts function pwa (line 48) | function pwa() { FILE: scripts/favicon.ts function downloadImage (line 11) | async function downloadImage(url: string, outputPath: string, id: string) { function main (line 26) | async function main() { FILE: server/database/cache.ts class Cache (line 6) | class Cache { method constructor (line 8) | constructor(db: Database) { method init (line 12) | async init() { method set (line 23) | async set(key: string, value: NewsItem[]) { method get (line 31) | async get(key: string): Promise { method getEntire (line 43) | async getEntire(keys: string[]): Promise { method delete (line 69) | async delete(key: string) { function getCacheTable (line 74) | async function getCacheTable() { FILE: server/database/user.ts class UserTable (line 4) | class UserTable { method constructor (line 6) | constructor(db: Database) { method init (line 10) | async init() { method addUser (line 27) | async addUser(id: string, email: string, type: "github") { method getUser (line 42) | async getUser(id: string) { method setData (line 46) | async setData(key: string, value: string, updatedTime = Date.now()) { method getData (line 54) | async getData(id: string) { method deleteUser (line 64) | async deleteUser(key: string) { FILE: server/mcp/server.ts function getServer (line 7) | function getServer() { FILE: server/sources/baidu.ts type Res (line 1) | interface Res { FILE: server/sources/bilibili.ts type WapRes (line 1) | interface WapRes { type HotVideoRes (line 38) | interface HotVideoRes { function formatNumber (line 139) | function formatNumber(num: number): string { FILE: server/sources/cankaoxiaoxi.ts type Res (line 1) | interface Res { FILE: server/sources/cls/index.ts type Item (line 3) | interface Item { type TelegraphRes (line 13) | interface TelegraphRes { type Depthes (line 19) | interface Depthes { type Hot (line 26) | interface Hot { FILE: server/sources/cls/utils.ts function getSearchParams (line 8) | async function getSearchParams(moreParams?: any) { FILE: server/sources/coolapk/index.ts type Res (line 4) | interface Res { FILE: server/sources/coolapk/utils.ts function getRandomDEVICE_ID (line 2) | function getRandomDEVICE_ID() { function get_app_token (line 8) | async function get_app_token() { function genHeaders (line 19) | async function genHeaders() { FILE: server/sources/douban.ts type HotMoviesRes (line 1) | interface HotMoviesRes { type MovieItem (line 10) | interface MovieItem { FILE: server/sources/douyin.ts type Res (line 1) | interface Res { FILE: server/sources/freebuf.ts type ArticleStats (line 4) | interface ArticleStats { type AuthorInfo (line 10) | interface AuthorInfo { type ArticleData (line 17) | interface ArticleData { function safeExtract (line 30) | function safeExtract($element: cheerio.Cheerio, selector: string): ... function safeExtractAttribute (line 36) | function safeExtractAttribute($element: cheerio.Cheerio, selector: ... function formatUrl (line 41) | function formatUrl(url: string | undefined, baseUrl: string = "https://w... function extractStats (line 47) | function extractStats($article: cheerio.Cheerio): ArticleStats { function extractAuthor (line 68) | function extractAuthor($article: cheerio.Cheerio): AuthorInfo { function extractCategory (line 86) | function extractCategory($article: cheerio.Cheerio): string { function extractIdFromUrl (line 99) | function extractIdFromUrl(url: string): string { FILE: server/sources/hupu.ts type HotItem (line 1) | interface HotItem { FILE: server/sources/iqiyi.ts type WapResp (line 4) | interface WapResp { type VideoInfo (line 21) | interface VideoInfo { FILE: server/sources/jin10.ts type Jin10Item (line 1) | interface Jin10Item { FILE: server/sources/juejin.ts type Res (line 1) | interface Res { FILE: server/sources/kaopu.ts type Res (line 1) | type Res = { FILE: server/sources/kuaishou.ts type KuaishouRes (line 1) | interface KuaishouRes { type HotRankData (line 15) | interface HotRankData { FILE: server/sources/linuxdo.ts type Res (line 1) | interface Res { FILE: server/sources/mktnews.ts type Report (line 1) | interface Report { type Res (line 24) | interface Res { FILE: server/sources/nowcoder.ts type Res (line 1) | interface Res { FILE: server/sources/qqvideo.ts type WapResp (line 5) | interface WapResp { type CardRes (line 33) | interface CardRes { type CardParams (line 49) | interface CardParams { function getQqVideoUrl (line 153) | function getQqVideoUrl(cid: string): string { function getTodaySlash (line 157) | function getTodaySlash(): string { FILE: server/sources/sspai.ts type Res (line 1) | interface Res { FILE: server/sources/tencent.ts type WapRes (line 4) | interface WapRes { FILE: server/sources/thepaper.ts type Res (line 1) | interface Res { FILE: server/sources/tieba.ts type Res (line 1) | interface Res { FILE: server/sources/toutiao.ts type Res (line 1) | interface Res { FILE: server/sources/v2ex.ts type Res (line 1) | interface Res { FILE: server/sources/wallstreetcn.ts type Item (line 1) | interface Item { type LiveRes (line 10) | interface LiveRes { type NewsRes (line 16) | interface NewsRes { type HotRes (line 26) | interface HotRes { FILE: server/sources/xueqiu.ts type StockRes (line 1) | interface StockRes { FILE: server/sources/zhihu.ts type Res (line 1) | interface Res { FILE: server/types.ts type RSSInfo (line 3) | interface RSSInfo { type RSSItem (line 11) | interface RSSItem { type CacheInfo (line 18) | interface CacheInfo { type CacheRow (line 24) | interface CacheRow { type RSSHubInfo (line 30) | interface RSSHubInfo { type RSSHubItem (line 37) | interface RSSHubItem { type UserInfo (line 45) | interface UserInfo { type RSSHubOption (line 54) | interface RSSHubOption { type SourceOption (line 61) | interface SourceOption { type SourceGetter (line 66) | type SourceGetter = () => Promise FILE: server/utils/base64.ts function decodeBase64URL (line 3) | function decodeBase64URL(str: string) { function encodeBase64URL (line 7) | function encodeBase64URL(str: string) { function decodeBase64 (line 11) | function decodeBase64(str: string) { function encodeBase64 (line 15) | function encodeBase64(str: string) { FILE: server/utils/crypto.ts type T (line 4) | type T = typeof crypto.subtle function md5 (line 7) | async function md5(s: string) { type Algorithm (line 17) | type Algorithm = "MD5" | "SHA-1" | "SHA-256" | "SHA-384" | "SHA-512" function myCrypto (line 18) | async function myCrypto(s: string, algorithm: Algorithm) { FILE: server/utils/date.ts function tranformToUTC (line 19) | function tranformToUTC(date: string, format?: string, timezone: string =... function words (line 25) | function words() { function toDate (line 115) | function toDate(date: string) { function toDurations (line 128) | function toDurations(matches: string[]) { function parseRelativeDate (line 146) | function parseRelativeDate(date: string, timezone: string = "UTC") { FILE: server/utils/rss2json.ts function rss2json (line 4) | async function rss2json(url: string): Promise { FILE: server/utils/source.ts type R (line 6) | type R = Partial> function defineSource (line 9) | function defineSource(source: SourceGetter | R): SourceGetter | R { function defineRSSSource (line 13) | function defineRSSSource(url: string, option?: SourceOption): SourceGett... function defineRSSHubSource (line 26) | function defineRSSHubSource(route: string, RSSHubOptions?: RSSHubOption,... function proxySource (line 49) | function proxySource(proxyUrl: string, source: SourceGetter) { FILE: shared/consts.ts constant TTL (line 6) | const TTL = 30 * 60 * 1000 FILE: shared/pre-sources.ts function genSources (line 488) | function genSources() { FILE: shared/type.util.ts type OmitNever (line 1) | type OmitNever = { [K in keyof T as T[K] extends never ? never : K]: ... type UnionToIntersection (line 2) | type UnionToIntersection = type MaybePromise (line 5) | type MaybePromise = Promise | T function typeSafeObjectFromEntries (line 7) | function typeSafeObjectFromEntries< function typeSafeObjectEntries (line 13) | function typeSafeObjectEntries>(o... function typeSafeObjectKeys (line 17) | function typeSafeObjectKeys>(obj:... function typeSafeObjectValues (line 21) | function typeSafeObjectValues>(ob... FILE: shared/types.ts type Color (line 5) | type Color = "primary" | Exclude type PrimitiveMetadata (line 30) | interface PrimitiveMetadata { type FixedColumnID (line 36) | type FixedColumnID = (typeof fixedColumnIds)[number] type HiddenColumnID (line 37) | type HiddenColumnID = Exclude type OriginSource (line 39) | interface OriginSource extends Partial> { type Source (line 56) | interface Source { type Column (line 82) | interface Column { type NewsItem (line 87) | interface NewsItem { type SourceResponse (line 105) | interface SourceResponse { FILE: shared/utils.ts function relativeTime (line 1) | function relativeTime(timestamp: string | number) { function delay (line 26) | function delay(ms: number) { function randomUUID (line 30) | function randomUUID() { function randomItem (line 38) | function randomItem(arr: T[]) { FILE: shared/verify.ts function verifyPrimitiveMetadata (line 3) | function verifyPrimitiveMetadata(target: any) { FILE: src/atoms/primitiveMetadataAtom.ts function createPrimitiveMetadataAtom (line 5) | function createPrimitiveMetadataAtom( function preprocessMetadata (line 38) | function preprocessMetadata(target: PrimitiveMetadata) { FILE: src/atoms/types.ts type Update (line 3) | type Update = T | ((prev: T) => T) type ToastItem (line 5) | interface ToastItem { FILE: src/components/column/card.tsx type ItemsProps (line 9) | interface ItemsProps extends React.HTMLAttributes { type NewsCardProps (line 18) | interface NewsCardProps { function NewsCard (line 53) | function NewsCard({ id, setHandleRef }: NewsCardProps) { function UpdatedTime (line 173) | function UpdatedTime({ isError, updatedTime }: { updatedTime: any, isErr... function DiffNumber (line 180) | function DiffNumber({ diff }: { diff: number }) { function ExtraInfo (line 205) | function ExtraInfo({ item }: { item: NewsItem }) { function NewsUpdatedTime (line 225) | function NewsUpdatedTime({ date }: { date: string | number }) { function NewsListHot (line 229) | function NewsListHot({ items }: { items: NewsItem[] }) { function NewsListTimeLine (line 262) | function NewsListTimeLine({ items }: { items: NewsItem[] }) { FILE: src/components/column/dnd.tsx constant WIDTH (line 20) | const WIDTH = 350 function Dnd (line 21) | function Dnd() { function DndWrapper (line 97) | function DndWrapper({ items, setItems, isSingleColumn, children }: Props... function CardOverlay (line 132) | function CardOverlay({ id }: { id: SourceID }) { function SortableCardWrapper (line 169) | function SortableCardWrapper({ id }: ItemsProps) { FILE: src/components/column/index.tsx function Column (line 7) | function Column({ id }: { id: FixedColumnID }) { FILE: src/components/common/dnd/index.tsx type ContextProps (line 9) | interface ContextProps extends Partial> { function DndContext (line 12) | function DndContext({ children, autoscroll, ...callback }: PropsWithChil... FILE: src/components/common/dnd/useSortable.ts type SortableProps (line 9) | interface SortableProps { type DraggableState (line 13) | interface DraggableState { function useSortable (line 18) | function useSortable(props: SortableProps) { FILE: src/components/common/overlay-scrollbar/index.tsx type Props (line 9) | type Props = HTMLProps & UseOverlayScrollbarsParams function OverlayScrollbar (line 19) | function OverlayScrollbar({ disabled, children, options, events, defer, ... function GlobalOverlayScrollbar (line 59) | function GlobalOverlayScrollbar({ children, className, ...props }: Props... FILE: src/components/common/overlay-scrollbar/useOverlayScrollbars.ts type OverlayScrollbarsComponentBaseProps (line 6) | type OverlayScrollbarsComponentBaseProps = type OverlayScrollbarsComponentProps (line 18) | type OverlayScrollbarsComponentProps = type OverlayScrollbarsComponentRef (line 23) | interface OverlayScrollbarsComponentRef { type Defer (line 30) | type Defer = [ type UseOverlayScrollbarsParams (line 35) | interface UseOverlayScrollbarsParams { type UseOverlayScrollbarsInitialization (line 44) | type UseOverlayScrollbarsInitialization = (target: InitializationTarget)... type UseOverlayScrollbarsInstance (line 46) | type UseOverlayScrollbarsInstance = () => ReturnType< function createDefer (line 50) | function createDefer(): Defer { function useOverlayScrollbars (line 89) | function useOverlayScrollbars(params?: UseOverlayScrollbarsParams): [Use... FILE: src/components/common/search-bar/index.tsx type SourceItemProps (line 11) | interface SourceItemProps { function groupByColumn (line 19) | function groupByColumn(items: SourceItemProps[]) { function SearchBar (line 39) | function SearchBar() { function SourceItem (line 112) | function SourceItem({ item }: { FILE: src/components/common/toast.tsx constant WIDTH (line 7) | const WIDTH = 320 function Toast (line 8) | function Toast() { function Item (line 39) | function Item({ info }: { info: ToastItem }) { FILE: src/components/footer.tsx function Footer (line 1) | function Footer() { FILE: src/components/header/index.tsx function GoTop (line 8) | function GoTop() { function Github (line 20) | function Github() { function Refresh (line 26) | function Refresh() { function Header (line 48) | function Header() { FILE: src/components/header/menu.tsx function Menu (line 15) | function Menu() { FILE: src/components/navbar.tsx function NavBar (line 5) | function NavBar() { FILE: src/hooks/query.ts function useUpdateQuery (line 4) | function useUpdateQuery() { function useEntireQuery (line 20) | function useEntireQuery(items: SourceID[]) { FILE: src/hooks/useDark.ts type ColorScheme (line 4) | type ColorScheme = "dark" | "light" | "auto" function useDark (line 8) | function useDark() { FILE: src/hooks/useFocus.ts function useFocus (line 4) | function useFocus() { function useFocusWith (line 17) | function useFocusWith(id: SourceID) { FILE: src/hooks/useLogin.ts function useLogin (line 26) | function useLogin() { FILE: src/hooks/useOnReload.ts constant KEY (line 3) | const KEY = "unload-time" function isPageReload (line 4) | function isPageReload() { function useOnReload (line 15) | function useOnReload(fn?: () => Promise | void, fallback?: () => P... FILE: src/hooks/usePWA.ts function usePWA (line 5) | function usePWA() { FILE: src/hooks/useRefetch.ts function useRefetch (line 4) | function useRefetch() { FILE: src/hooks/useRelativeTime.ts function useVisibility (line 15) | function useVisibility() { function useRelativeTime (line 29) | function useRelativeTime(timestamp: string | number) { FILE: src/hooks/useSearch.ts function useSearchBar (line 3) | function useSearchBar() { FILE: src/hooks/useSync.ts function uploadMetadata (line 7) | async function uploadMetadata(metadata: PrimitiveMetadata) { function downloadMetadata (line 22) | async function downloadMetadata(): Promise { function useSync (line 40) | function useSync() { FILE: src/hooks/useToast.ts function useToast (line 4) | function useToast() { FILE: src/main.tsx type Register (line 27) | interface Register { FILE: src/routeTree.gen.ts type FileRoutesByPath (line 34) | interface FileRoutesByPath { type FileRoutesByFullPath (line 54) | interface FileRoutesByFullPath { type FileRoutesByTo (line 59) | interface FileRoutesByTo { type FileRoutesById (line 64) | interface FileRoutesById { type FileRouteTypes (line 70) | interface FileRouteTypes { type RootRouteChildren (line 79) | interface RootRouteChildren { FILE: src/routes/__root.tsx function NotFoundComponent (line 21) | function NotFoundComponent() { function RootComponent (line 28) | function RootComponent() { FILE: src/routes/c.$column.tsx function SectionComponent (line 23) | function SectionComponent() { FILE: src/routes/index.tsx function IndexComponent (line 9) | function IndexComponent() { FILE: src/utils/index.ts function safeParseString (line 4) | function safeParseString(str: any) { class Timer (line 12) | class Timer { method constructor (line 18) | constructor(callback: () => MaybePromise, delay: number) { method pause (line 24) | pause() { method resume (line 29) | resume() { method clear (line 35) | clear() { function isiOS (line 46) | function isiOS() { FILE: tools/rollup-glob.ts constant ID_PREFIX (line 9) | const ID_PREFIX = "glob:" type GlobMap (line 11) | type GlobMap = Record function RollopGlob (line 13) | function RollopGlob(): Plugin { function writeTypeDeclaration (line 56) | async function writeTypeDeclaration(map: GlobMap, filename: string) {