Skip to content

cloudewu/plurk-search

Repository files navigation

河道搜搜 Timeline Search

Having trouble finding a certain plurk in your Plurk timeline? Remembering seeing some funny plurk and you've liked it but couldn't find it anymore? We feel you!

Timeline Search (tmp name) is a tool that helps users to find a plurk with specific content in their timeline.

For example, it can search the plurks that you've replurked for a certain keyword.

The app is still under developing and has no UI currently, but the goal is to have a simple UI that users can login and do the search.

河道搜搜(暫定名稱)的目標是幫助噗浪使用者在自己的時間軸上搜索特定內容。

比如再已按過愛心的噗中搜索「食譜」,在所有轉噗過的內容中搜索特定標籤……

工具目前正在開發當中,不確定會拖多久,但目標就是這樣 :D

Dev tools

  1. Node: 18.17.0
  2. Language: Typescript
  3. Pacakge Manager: Yarn 2+
  4. API Framework: Nest
  5. UI Framework: NextJS + MUI
  6. Testing Framework: Jest
  7. Git hook: Husky

Getting Started

Install all dependencies

yarn

Don't have yarn 2+ on your machine? Check official installation guide.

Simply put, corepack enable for node >= 16.0, npm i -g corepack for node < 16.0.

Prepare api environments

We need to authenticate the user before we are able to pull data from their timeline.

To do so we need the key and secret to communicate with Plurk.

First, register a new plurk app here: https://www.plurk.com/PlurkApp/ (or you can reuse any existing one if there is one)

See also: https://www.plurk.com/API

Then goto /api folder, copy .env.sample under this repo and rename it to .env.

Fill in PLURK_APP_KEY and PLURK_APP_SECRET with the key & secret you got from Plurk.

Enter random strings for ENCRYPTION_KEY and JWT_SECRET.

Modify PROTOCOL, HOST, and PORT if you're hosting on a different hostname/port.

Development

# recompile upon file changes
yarn start:dev:api

# prod
yarn build:api && yarn start:prod:api

Then you can access the api on http://localhost:9981/, web app on http://localhost:9980/.

Linting

This repo reinforces code style and code quality to pass by Husky hook. You must fix all issues from eslint before committing, and must pass all tests before pushing.

yarn lint:api
yarn lint:web

Testing

yarn test:api

# or run tests upon file changes - extremely useful for TDD
yarn test:watch:api

Workflow

img

API workflow demo img

Bug Report

Open an issue directly for any bug reports/feature requests/feedbacks. Or you can also contact me on Plurk.

License

This tool is MIT licensed.

Troubleshooting

  1. Editor (e.g., vscode) not able to resolve the package. Check https://yarnpkg.com/getting-started/editor-sdks

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published