SYMBOL INDEX (194 symbols across 58 files) FILE: backend/src/app.ts class App (line 11) | class App { method constructor (line 15) | constructor() { method setupExpress (line 19) | private setupExpress(): void { method start (line 28) | public async start(): Promise { FILE: backend/src/config/index.ts type Channel (line 6) | interface Channel { type CloudPatterns (line 11) | interface CloudPatterns { type Config (line 21) | interface Config { FILE: backend/src/controllers/BaseCloudController.ts method constructor (line 6) | constructor(protected cloudService: ICloudStorageService) { method getShareInfo (line 10) | async getShareInfo(req: Request, res: Response): Promise { method getFolderList (line 18) | async getFolderList(req: Request, res: Response): Promise { method saveFile (line 26) | async saveFile(req: Request, res: Response): Promise { FILE: backend/src/controllers/BaseController.ts type ApiResponseData (line 3) | interface ApiResponseData { method handleRequest (line 9) | protected async handleRequest( FILE: backend/src/controllers/cloud115.ts class Cloud115Controller (line 7) | class Cloud115Controller extends BaseCloudController { method constructor (line 8) | constructor(@inject(TYPES.Cloud115Service) cloud115Service: Cloud115Se... FILE: backend/src/controllers/douban.ts class DoubanController (line 8) | class DoubanController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.DoubanService) private doubanService: Douban... method getDoubanHotList (line 13) | async getDoubanHotList(req: Request, res: Response): Promise { FILE: backend/src/controllers/quark.ts class QuarkController (line 8) | class QuarkController extends BaseCloudController { method constructor (line 9) | constructor(@inject(TYPES.QuarkService) quarkService: QuarkService) { FILE: backend/src/controllers/resource.ts class ResourceController (line 8) | class ResourceController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.Searcher) private searcher: Searcher) { method search (line 13) | async search(req: Request, res: Response): Promise { FILE: backend/src/controllers/setting.ts class SettingController (line 8) | class SettingController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.SettingService) private settingService: Sett... method get (line 13) | async get(req: Request, res: Response): Promise { method save (line 21) | async save(req: Request, res: Response): Promise { FILE: backend/src/controllers/sponsors.ts class SponsorsController (line 8) | class SponsorsController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.SponsorsService) private sponsorsService: Sp... method get (line 13) | async get(req: Request, res: Response): Promise { FILE: backend/src/controllers/teleImages.ts class ImageController (line 8) | class ImageController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.ImageService) private imageService: ImageSer... method getImages (line 13) | async getImages(req: Request, res: Response): Promise { FILE: backend/src/controllers/user.ts class UserController (line 8) | class UserController extends BaseController { method constructor (line 9) | constructor(@inject(TYPES.UserService) private userService: UserServic... method register (line 13) | async register(req: Request, res: Response): Promise { method login (line 20) | async login(req: Request, res: Response): Promise { FILE: backend/src/core/ApiResponse.ts class ApiResponse (line 1) | class ApiResponse { method constructor (line 7) | private constructor(success: boolean, code: number, data?: T, message?... method success (line 14) | static success(data?: T, message = "操作成功"): ApiResponse { method error (line 18) | static error(message: string, code = 10000): ApiResponse { FILE: backend/src/core/types.ts constant TYPES (line 1) | const TYPES = { FILE: backend/src/middleware/auth.ts type AuthenticatedRequest (line 7) | interface AuthenticatedRequest extends Request { FILE: backend/src/middleware/errorHandler.ts type CustomError (line 3) | interface CustomError extends Error { FILE: backend/src/middleware/rateLimiter.ts constant WINDOW_MS (line 4) | const WINDOW_MS = 60 * 1000; constant MAX_REQUESTS (line 5) | const MAX_REQUESTS = 600; FILE: backend/src/models/GlobalSetting.ts type GlobalSettingAttributes (line 4) | interface GlobalSettingAttributes { type GlobalSettingCreationAttributes (line 13) | interface GlobalSettingCreationAttributes extends Optional {} class User (line 14) | class User extends Model impleme... FILE: backend/src/models/UserSetting.ts type UserSettingAttributes (line 5) | interface UserSettingAttributes { type UserSettingCreationAttributes (line 13) | interface UserSettingCreationAttributes extends Optional { method getShareInfo (line 66) | async getShareInfo(shareCode: string, receiveCode = ""): Promise { method saveSharedFile (line 128) | async saveSharedFile(params: SaveFileParams): Promise<{ message: strin... FILE: backend/src/services/DatabaseService.ts constant DEFAULT_GLOBAL_SETTINGS (line 7) | const DEFAULT_GLOBAL_SETTINGS = { class DatabaseService (line 15) | class DatabaseService { method constructor (line 18) | constructor() { method initialize (line 22) | async initialize(): Promise { method initializeGlobalSettings (line 34) | private async initializeGlobalSettings(): Promise { method cleanupBackupTables (line 48) | private async cleanupBackupTables(): Promise { FILE: backend/src/services/DoubanService.ts type DoubanSubject (line 4) | interface DoubanSubject { class DoubanService (line 13) | class DoubanService { method constructor (line 17) | constructor() { method getHotList (line 40) | async getHotList(params: { FILE: backend/src/services/ImageService.ts class ImageService (line 8) | class ImageService { method constructor (line 11) | constructor() { method ensureAxiosInstance (line 15) | private async ensureAxiosInstance(): Promise { method updateAxiosInstance (line 52) | async updateAxiosInstance(): Promise { method getImages (line 57) | async getImages(url: string): Promise { FILE: backend/src/services/QuarkService.ts type QuarkShareInfo (line 15) | interface QuarkShareInfo { class QuarkService (line 28) | class QuarkService implements ICloudStorageService { method constructor (line 32) | constructor() { method setCookie (line 56) | async setCookie(req: Request): Promise { method getShareInfo (line 68) | async getShareInfo(pwdId: string, passcode = ""): Promise { method saveSharedFile (line 163) | async saveSharedFile(params: SaveFileParams): Promise<{ message: strin... FILE: backend/src/services/Searcher.ts type sourceItem (line 10) | interface sourceItem { class Searcher (line 25) | class Searcher { method constructor (line 29) | constructor() { method initAxiosInstance (line 34) | private async initAxiosInstance(isUpdate: boolean = false) { method updateAxiosInstance (line 64) | public static async updateAxiosInstance(): Promise { method extractCloudLinks (line 68) | private extractCloudLinks(text: string): { links: string[]; cloudType:... method searchAll (line 84) | async searchAll(keyword: string, channelId?: string, messageId?: strin... method searchInWeb (line 131) | async searchInWeb(url: string) { FILE: backend/src/services/SettingService.ts class SettingService (line 9) | class SettingService { method constructor (line 10) | constructor(@inject(TYPES.ImageService) private imageService: ImageSer... method getSettings (line 12) | async getSettings(userId: string | undefined, role: number | undefined) { method saveSettings (line 35) | async saveSettings(userId: string | undefined, role: number | undefine... method updateSettings (line 50) | async updateSettings(/* 参数 */): Promise { FILE: backend/src/services/SponsorsService.ts class SponsorsService (line 7) | class SponsorsService { method constructor (line 10) | constructor() { method getSponsors (line 13) | async getSponsors() { FILE: backend/src/services/UserService.ts class UserService (line 9) | class UserService { method isValidInput (line 10) | private isValidInput(input: string): boolean { method register (line 16) | async register(username: string, password: string, registerCode: strin... method login (line 47) | async login(username: string, password: string) { FILE: backend/src/types/cloud.ts type ShareInfoResponse (line 1) | interface ShareInfoResponse { type GetShareInfoParams (line 10) | interface GetShareInfoParams { type ShareInfoItem (line 15) | interface ShareInfoItem { type FolderListResponse (line 21) | interface FolderListResponse { type SaveFileParams (line 29) | interface SaveFileParams { type SaveFileResponse (line 37) | interface SaveFileResponse { type ShareFileInfo (line 42) | interface ShareFileInfo { type QuarkShareFileInfo (line 57) | interface QuarkShareFileInfo { type QuarkShareInfo (line 67) | interface QuarkShareInfo { type QuarkFolderItem (line 79) | interface QuarkFolderItem { FILE: backend/src/types/cloud115.ts type ShareInfo (line 1) | interface ShareInfo { type ShareInfoResponse (line 7) | interface ShareInfoResponse { FILE: backend/src/types/express.ts type Request (line 5) | interface Request { FILE: backend/src/types/index.ts type Config (line 1) | interface Config { FILE: backend/src/types/services.ts type ICloudStorageService (line 4) | interface ICloudStorageService { FILE: backend/src/utils/axiosInstance.ts type ProxyConfig (line 4) | interface ProxyConfig { function createAxiosInstance (line 9) | function createAxiosInstance( FILE: backend/src/utils/handleError.ts type CustomError (line 4) | interface CustomError { function handleError (line 10) | function handleError( FILE: backend/src/utils/index.ts type JwtPayload (line 5) | interface JwtPayload { function getUserIdFromToken (line 9) | function getUserIdFromToken(req: Request): string | null { FILE: backend/src/utils/response.ts type ResponseData (line 3) | interface ResponseData { FILE: frontend/components.d.ts type GlobalComponents (line 9) | interface GlobalComponents { type ComponentCustomProperties (line 68) | interface ComponentCustomProperties { FILE: frontend/postcss.config.cjs method rootValue (line 4) | rootValue({ file }) { FILE: frontend/src/api/cloud115.ts method getShareInfo (line 5) | async getShareInfo(params: GetShareInfoParams) { method getFolderList (line 12) | async getFolderList(parentCid = "0") { method saveFile (line 19) | async saveFile(params: SaveFileParams) { FILE: frontend/src/api/douban.ts method getHotList (line 5) | async getHotList(params: HotListParams) { FILE: frontend/src/api/quark.ts method getShareInfo (line 5) | async getShareInfo(params: GetShareInfoParams) { method getFolderList (line 12) | async getFolderList(parentCid = "0") { method saveFile (line 19) | async saveFile(params: SaveFileParams) { FILE: frontend/src/api/resource.ts method search (line 5) | search(keyword: string, channelId?: string, lastMessageId?: string) { FILE: frontend/src/constants/project.ts constant PROJECT_NAME (line 1) | const PROJECT_NAME = "Cloudsaver"; constant PROJECT_GITHUB (line 2) | const PROJECT_GITHUB = "https://github.com/jiangrui1994/cloudsaver"; FILE: frontend/src/constants/storage.ts constant STORAGE_KEYS (line 1) | const STORAGE_KEYS = { FILE: frontend/src/env.d.ts type ImportMetaEnv (line 9) | interface ImportMetaEnv { type ImportMeta (line 13) | interface ImportMeta { FILE: frontend/src/stores/douban.ts type StoreType (line 6) | interface StoreType { type CurrentParams (line 12) | interface CurrentParams { method getHotList (line 28) | async getHotList() { method setCurrentParams (line 50) | setCurrentParams(currentParams: CurrentParams) { FILE: frontend/src/stores/index.ts type StoreType (line 3) | interface StoreType { method setScrollTop (line 13) | setScrollTop(top: boolean) { FILE: frontend/src/stores/resource.ts type StorageListObject (line 16) | interface StorageListObject { type CloudDriveConfig (line 28) | interface CloudDriveConfig { constant CLOUD_DRIVES (line 41) | const CLOUD_DRIVES: CloudDriveConfig[] = [ method setLoadTree (line 107) | setLoadTree(loadTree: boolean) { method searchResources (line 111) | async searchResources(keyword?: string, isLoadMore = false, channelId?: ... method setSelectedResource (line 174) | async setSelectedResource(resourceSelect: ShareInfo[]) { method saveResource (line 179) | async saveResource(resource: ResourceItem, folderId: string): Promise { method getResourceListAndSelect (line 269) | async getResourceListAndSelect(resource: ResourceItem): Promise { method handleError (line 302) | handleError(message: string, error: unknown): void { FILE: frontend/src/stores/userSetting.ts method getSettings (line 22) | async getSettings() { method saveSettings (line 30) | async saveSettings(settings: { method setDisplayStyle (line 43) | setDisplayStyle(style: "table" | "card") { method setImagesSource (line 49) | setImagesSource(source: "proxy" | "local") { FILE: frontend/src/types/douban.ts type HotListParams (line 1) | interface HotListParams { type HotListItem (line 7) | interface HotListItem { FILE: frontend/src/types/globals.d.ts type Location (line 2) | interface Location { type Window (line 10) | interface Window { FILE: frontend/src/types/index.ts type ResourceItem (line 1) | interface ResourceItem { type Resource (line 17) | interface Resource { type ShareInfo (line 29) | interface ShareInfo { type ShareInfoItem (line 37) | interface ShareInfoItem { type ShareInfoResponse (line 44) | interface ShareInfoResponse { type ShareFileInfoAndFolder (line 51) | interface ShareFileInfoAndFolder { type Folder (line 58) | interface Folder { type SaveFileParams (line 64) | interface SaveFileParams { type GetShareInfoParams (line 72) | interface GetShareInfoParams { type ApiResponse (line 77) | interface ApiResponse { type Save115FileParams (line 83) | interface Save115FileParams { type SaveQuarkFileParams (line 90) | interface SaveQuarkFileParams { type TagColor (line 100) | interface TagColor { type GlobalSettingAttributes (line 108) | interface GlobalSettingAttributes { type UserSettingAttributes (line 115) | interface UserSettingAttributes { FILE: frontend/src/types/response.ts type RequestErrorCode (line 1) | type RequestErrorCode = -1 | 400 | 401 | 402 | 403 | 500 | 501; type RequestSuccess (line 3) | interface RequestSuccess { type RequestError (line 9) | interface RequestError { type RequestResult (line 15) | type RequestResult = RequestSuccess | RequestError; FILE: frontend/src/types/user.ts type GlobalSettingAttributes (line 1) | interface GlobalSettingAttributes { type UserSettingAttributes (line 9) | interface UserSettingAttributes { type UserSettingStore (line 14) | interface UserSettingStore { FILE: frontend/src/utils/index.ts function isMobileDevice (line 11) | function isMobileDevice() { function throttle (line 18) | function throttle any>(fn: T, delay: numbe... FILE: frontend/src/utils/request.ts function isLoginAndRedirect (line 29) | function isLoginAndRedirect(url: string) {