Download apps/server/src/feeds/feeds.controller.ts from fukeke/rss: direct link, hf CLI and curl.
- Browser
- Download file 1.5 kB
-
https://huggingface.co/spaces/fukeke/rss/resolve/main/apps/server/src/feeds/feeds.controller.ts
- Command line
-
hf download hf://spaces/fukeke/rss/apps/server/src/feeds/feeds.controller.ts
-
curl -L -o feeds.controller.ts https://huggingface.co/spaces/fukeke/rss/resolve/main/apps/server/src/feeds/feeds.controller.ts
1.5 kB
| import { | |
| Controller, | |
| DefaultValuePipe, | |
| Get, | |
| Logger, | |
| Param, | |
| ParseIntPipe, | |
| Query, | |
| Request, | |
| Response, | |
| } from '@nestjs/common'; | |
| import { FeedsService } from './feeds.service'; | |
| import { Response as Res, Request as Req } from 'express'; | |
| ('feeds') | |
| export class FeedsController { | |
| private readonly logger = new Logger(this.constructor.name); | |
| constructor(private readonly feedsService: FeedsService) {} | |
| ('/') | |
| async getFeedList() { | |
| return this.feedsService.getFeedList(); | |
| } | |
| ('/all.(json|rss|atom)') | |
| async getFeeds( | |
| () req: Req, | |
| () res: Res, | |
| ('limit', new DefaultValuePipe(30), ParseIntPipe) limit: number = 30, | |
| ('mode') mode: string, | |
| ) { | |
| const path = req.path; | |
| const type = path.split('.').pop() || ''; | |
| const { content, mimeType } = await this.feedsService.handleGenerateFeed({ | |
| type, | |
| limit, | |
| mode, | |
| }); | |
| res.setHeader('Content-Type', mimeType); | |
| res.send(content); | |
| } | |
| ('/:feed') | |
| async getFeed( | |
| () res: Res, | |
| ('feed') feed: string, | |
| ('limit', new DefaultValuePipe(10), ParseIntPipe) limit: number = 10, | |
| ('mode') mode: string, | |
| ) { | |
| const [id, type] = feed.split('.'); | |
| this.logger.log('getFeed: ', id); | |
| const { content, mimeType } = await this.feedsService.handleGenerateFeed({ | |
| id, | |
| type, | |
| limit, | |
| mode, | |
| }); | |
| res.setHeader('Content-Type', mimeType); | |
| res.send(content); | |
| } | |
| } | |