├── src ├── test ├── content │ ├── hoc │ │ ├── index.ts │ │ ├── withPage.tsx │ │ └── withRoot.tsx │ ├── utils │ │ ├── index.ts │ │ ├── predict.ts │ │ └── conv.ts │ ├── components │ │ ├── animation.tsx │ │ ├── icons │ │ │ ├── AddIcon.tsx │ │ │ ├── index.ts │ │ │ ├── EditIcon.tsx │ │ │ ├── RemoveIcon.tsx │ │ │ ├── ResetIcon.tsx │ │ │ ├── PrivateIcon.tsx │ │ │ ├── HelpIcon.tsx │ │ │ ├── PublicIcon.tsx │ │ │ ├── CrownIcon.tsx │ │ │ └── CheckBoxIcon.tsx │ │ ├── Portal.tsx │ │ ├── SvgIcon.tsx │ │ ├── Input.tsx │ │ ├── DistortSvg.tsx │ │ ├── utils.ts │ │ ├── Switch.tsx │ │ ├── ErrorToolTip.tsx │ │ ├── Checkbox.tsx │ │ ├── Modal.tsx │ │ ├── Dialog.tsx │ │ ├── ToolTip.tsx │ │ └── Button.tsx │ ├── types │ │ ├── global.d.ts │ │ ├── customEvent.d.ts │ │ └── styled.d.ts │ ├── hooks │ │ ├── useThrottle.ts │ │ ├── useEvent.ts │ │ ├── index.ts │ │ ├── useIsMount.ts │ │ ├── useEffectMount.ts │ │ ├── useHover.ts │ │ └── useObserverAncestor.ts │ ├── index.tsx │ ├── pages │ │ ├── home │ │ │ ├── GlobalStyle.tsx │ │ │ ├── DropContainer.tsx │ │ │ ├── Mask.tsx │ │ │ ├── App.tsx │ │ │ ├── postsSlice.ts │ │ │ ├── BlockUser.tsx │ │ │ ├── useBlock.ts │ │ │ └── DragAndDrop.tsx │ │ ├── problems │ │ │ ├── App.tsx │ │ │ ├── Legacy.tsx │ │ │ ├── DynamicLayout.tsx │ │ │ ├── useTimer.ts │ │ │ ├── Beta.tsx │ │ │ ├── ShortcutKeyOption.tsx │ │ │ └── RandomOption.tsx │ │ ├── problem-list │ │ │ ├── HelpHead.tsx │ │ │ ├── useSetProblemListRoot.ts │ │ │ ├── ProblemList.tsx │ │ │ ├── AddFavorite.tsx │ │ │ ├── fixRandom.ts │ │ │ ├── App.tsx │ │ │ ├── FavoriteList.tsx │ │ │ └── Editor.tsx │ │ ├── problemset │ │ │ ├── App.tsx │ │ │ ├── Open.tsx │ │ │ ├── RankItem.tsx │ │ │ └── RankRange.tsx │ │ ├── ranking │ │ │ ├── RealTimePredict.tsx │ │ │ ├── Predict.tsx │ │ │ └── Title.tsx │ │ └── global │ │ │ ├── globalSlice.ts │ │ │ └── optionsSlice.ts │ ├── App.tsx │ ├── load.ts │ ├── theme │ │ └── index.ts │ └── app │ │ └── store.ts ├── utils │ ├── index.ts │ ├── utils.ts │ └── logger.ts ├── background │ ├── utils │ │ ├── sleep.ts │ │ ├── index.ts │ │ ├── cache.ts │ │ ├── lbaoAPI.ts │ │ ├── getContest.ts │ │ ├── predictorApi.ts │ │ └── fileIconData.ts │ ├── index.ts │ └── hot.ts ├── popup │ ├── App.tsx │ └── index.tsx └── options │ ├── App.tsx │ ├── index.tsx │ └── options.ts ├── public ├── _locales │ └── zh_CN │ │ └── messages.json ├── icons │ ├── icon-128.png │ ├── icon-16.png │ └── icon-48.png ├── options.html ├── popup.html ├── file-icons │ ├── erlang.svg │ ├── racket.svg │ ├── javascript.svg │ ├── c.svg │ ├── csharp.svg │ ├── kotlin.svg │ ├── swift.svg │ ├── cpp.svg │ ├── typescript.svg │ ├── python.svg │ ├── python3.svg │ ├── java.svg │ ├── scala.svg │ ├── elixir.svg │ ├── golang.svg │ ├── php.svg │ └── rust.svg ├── manifest.json └── manifest-dev.json ├── docs ├── assets │ ├── mark.png │ ├── show.png │ ├── slug.png │ ├── 实时预测.gif │ ├── 题单审核.png │ ├── block.gif │ ├── hidden.png │ ├── trynow.png │ ├── 删除黑名单.gif │ ├── 实时预测配置.png │ ├── 演示拖拽手柄.gif │ ├── 演示拖拽链接.gif │ ├── 题单页侧边栏.png │ ├── options.png │ ├── restart.png │ ├── 临时解除黑名单.gif │ ├── 打开黑名单列表.gif │ ├── 自定义题单管理.png │ ├── 题库页题单侧边栏.png │ ├── 竞赛答题页自定义布局.png │ ├── show-extension.png │ ├── show-file-icon.png │ ├── get_it_from_edge.png │ ├── rating-predictor.png │ ├── submission-detail-download.png │ └── submission-detail-download-progress.png ├── 配置选项.md ├── 首页帖子黑名单.md ├── 开发.md ├── 题单管理.md ├── 答题页.md └── 竞赛排名页.md ├── .vscode ├── extensions.json ├── launch.json └── settings.json ├── semantic-release-build ├── index.js ├── verifyConditions.js └── prepare.js ├── .prettierrc.js ├── jest.config.js ├── jest └── setupTests.ts ├── .gitignore ├── config ├── production.js ├── ChromeExtensionsDevHMRPlugin │ └── index.js ├── common.js └── development.js ├── webpack.config.js ├── tsconfig.json ├── packcrx.js ├── LICENSE ├── .babelrc.js ├── release.config.js ├── .github └── workflows │ └── release.yml ├── package.json └── .eslintrc.js /src/test: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /public/_locales/zh_CN/messages.json: -------------------------------------------------------------------------------- 1 | {} -------------------------------------------------------------------------------- /src/content/hoc/index.ts: -------------------------------------------------------------------------------- 1 | export * from './withRoot' 2 | export * from './withPage' 3 | -------------------------------------------------------------------------------- /src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { default as logger } from './logger' 2 | export * from './utils' 3 | -------------------------------------------------------------------------------- /docs/assets/mark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/mark.png -------------------------------------------------------------------------------- /docs/assets/show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/show.png -------------------------------------------------------------------------------- /docs/assets/slug.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/slug.png -------------------------------------------------------------------------------- /docs/assets/实时预测.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/实时预测.gif -------------------------------------------------------------------------------- /docs/assets/题单审核.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/题单审核.png -------------------------------------------------------------------------------- /docs/assets/block.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/block.gif -------------------------------------------------------------------------------- /docs/assets/hidden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/hidden.png -------------------------------------------------------------------------------- /docs/assets/trynow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/trynow.png -------------------------------------------------------------------------------- /docs/assets/删除黑名单.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/删除黑名单.gif -------------------------------------------------------------------------------- /docs/assets/实时预测配置.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/实时预测配置.png -------------------------------------------------------------------------------- /docs/assets/演示拖拽手柄.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/演示拖拽手柄.gif -------------------------------------------------------------------------------- /docs/assets/演示拖拽链接.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/演示拖拽链接.gif -------------------------------------------------------------------------------- /docs/assets/题单页侧边栏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/题单页侧边栏.png -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": ["esbenp.prettier-vscode", "dbaeumer.vscode-eslint"] 3 | } 4 | -------------------------------------------------------------------------------- /docs/assets/options.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/options.png -------------------------------------------------------------------------------- /docs/assets/restart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/restart.png -------------------------------------------------------------------------------- /docs/assets/临时解除黑名单.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/临时解除黑名单.gif -------------------------------------------------------------------------------- /docs/assets/打开黑名单列表.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/打开黑名单列表.gif -------------------------------------------------------------------------------- /docs/assets/自定义题单管理.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/自定义题单管理.png -------------------------------------------------------------------------------- /docs/assets/题库页题单侧边栏.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/题库页题单侧边栏.png -------------------------------------------------------------------------------- /public/icons/icon-128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/public/icons/icon-128.png -------------------------------------------------------------------------------- /public/icons/icon-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/public/icons/icon-16.png -------------------------------------------------------------------------------- /public/icons/icon-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/public/icons/icon-48.png -------------------------------------------------------------------------------- /docs/assets/竞赛答题页自定义布局.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/竞赛答题页自定义布局.png -------------------------------------------------------------------------------- /docs/assets/show-extension.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/show-extension.png -------------------------------------------------------------------------------- /docs/assets/show-file-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/show-file-icon.png -------------------------------------------------------------------------------- /src/content/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './utils' 2 | export * from './leetcode-api' 3 | export * from './predict' 4 | -------------------------------------------------------------------------------- /docs/assets/get_it_from_edge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/get_it_from_edge.png -------------------------------------------------------------------------------- /docs/assets/rating-predictor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/rating-predictor.png -------------------------------------------------------------------------------- /docs/assets/submission-detail-download.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/submission-detail-download.png -------------------------------------------------------------------------------- /docs/assets/submission-detail-download-progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/XYShaoKang/refined-leetcode/HEAD/docs/assets/submission-detail-download-progress.png -------------------------------------------------------------------------------- /semantic-release-build/index.js: -------------------------------------------------------------------------------- 1 | const verifyConditions = require('./verifyConditions') 2 | const prepare = require('./prepare') 3 | module.exports = { verifyConditions, prepare } 4 | -------------------------------------------------------------------------------- /src/background/utils/sleep.ts: -------------------------------------------------------------------------------- 1 | export function sleep(time: number): Promise { 2 | return new Promise(function (resolve) { 3 | setTimeout(resolve, time) 4 | }) 5 | } 6 | -------------------------------------------------------------------------------- /src/popup/App.tsx: -------------------------------------------------------------------------------- 1 | import React, { FC } from 'react' 2 | import Option from '../options/Option' 3 | 4 | const App: FC = () => { 5 | return