Skip to content
This repository has been archived by the owner on Sep 10, 2023. It is now read-only.

Commit

Permalink
feat: 支持 CSDN. close #350
Browse files Browse the repository at this point in the history
  • Loading branch information
axetroy committed Dec 25, 2020
1 parent b4e34e6 commit 814b162
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 25 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -66,6 +66,7 @@
- [x] Pocket
- [x] DogeDoge
- [x] 秘迹
- [x] CSDN

<details><summary>更多</summary>

Expand Down
52 changes: 29 additions & 23 deletions index.ts
@@ -1,33 +1,34 @@
require("reflect-metadata");
import http from "gm-http";
import { App } from "@/app";

import { GoogleProvider } from "@/sites/www.google.com";
import { GmailProvider } from "@/sites/gmail.google.com";
import { RuyoProvider } from "@/sites/51.ruyo.net";
import { MozillaProvider } from "@/sites/addons.mozilla.org";
import { CSDNProvider } from "@/sites/blog.csdn.net";
import { ZhihuDailyProvider } from "@/sites/daily.zhihu.com";
import { GoogleDocsProvider } from "@/sites/docs.google.com";
import { PocketProvider } from "@/sites/getpocket.com";
import { GmailProvider } from "@/sites/gmail.google.com";
import { JuejinProvider } from "@/sites/juejin.com";
import { QQMailProvider } from "@/sites/mail.qq.com";
import { MiJiProvider } from "@/sites/mijisou.com";
import { GooglePlayProvider } from "@/sites/play.google.com";
import { YoutubeProvider } from "@/sites/www.youtube.com";
import { SoGouProvider } from "@/sites/www.sogou.com";
import { BaiduProvider } from "@/sites/www.baidu.com";
import { BaiduVideoProvider } from "@/sites/video.baidu.com";
import { BaiduXueshuProvider } from "@/sites/xueshu.baidu.com";
import { SteamProvider } from "@/sites/steamcommunity.com";
import { TiebaProvider } from "@/sites/tieba.baidu.com";
import { ZhihuProvider } from "@/sites/www.zhihu.com";
import { ZhihuZhuanlanProvider } from "@/sites/zhuanlan.zhihu.com";
import { ZhihuDailyProvider } from "@/sites/daily.zhihu.com";
import { SoProvider } from "@/sites/www.so.com";
import { WeboProvider } from "@/sites/weibo.com";
import { TwitterProvider } from "@/sites/twitter.com";
import { JuejinProvider } from "@/sites/juejin.com";
import { QQMailProvider } from "@/sites/mail.qq.com";
import { MozillaProvider } from "@/sites/addons.mozilla.org";
import { JianShuProvider } from "@/sites/www.jianshu.com";
import { DouBanProvider } from "@/sites/www.douban.com";
import { PocketProvider } from "@/sites/getpocket.com";
import { BaiduVideoProvider } from "@/sites/video.baidu.com";
import { WeboProvider } from "@/sites/weibo.com";
import { BaiduProvider } from "@/sites/www.baidu.com";
import { DogeDogeProvider } from "@/sites/www.dogedoge.com";
import { RuyoProvider } from "@/sites/51.ruyo.net";
import { SteamProvider } from "@/sites/steamcommunity.com";
import { MiJiProvider } from "@/sites/mijisou.com";
import { DouBanProvider } from "@/sites/www.douban.com";
import { GoogleProvider } from "@/sites/www.google.com";
import { JianShuProvider } from "@/sites/www.jianshu.com";
import { SoProvider } from "@/sites/www.so.com";
import { SoGouProvider } from "@/sites/www.sogou.com";
import { YoutubeProvider } from "@/sites/www.youtube.com";
import { ZhihuProvider } from "@/sites/www.zhihu.com";
import { BaiduXueshuProvider } from "@/sites/xueshu.baidu.com";
import { ZhihuZhuanlanProvider } from "@/sites/zhuanlan.zhihu.com";
import http from "gm-http";


const app = new App();
const isDebug: boolean = process.env.NODE_ENV !== "production";
Expand Down Expand Up @@ -191,5 +192,10 @@ app
test: /mijisou\.com/,
provider: MiJiProvider,
},
{
name: "CSDN",
test: /blog\.csdn\.net/,
provider: CSDNProvider
}
])
.bootstrap();
20 changes: 20 additions & 0 deletions src/sites/blog.csdn.net.ts
@@ -0,0 +1,20 @@
import { IProvider } from "@/provider";

export class CSDNProvider implements IProvider {
public test = /^http:\/\//;
private container: HTMLElement;
public resolve(aElement: HTMLAnchorElement) {
this.container = document.querySelector("#content_views");
if (this.container && this.container.contains(aElement)) {
if (!aElement.onclick) {
aElement.onclick = (e) => {
// 阻止事件冒泡, 因为上层元素绑定的click事件会重定向
if (e.stopPropagation) {
e.stopPropagation();
}
aElement.setAttribute("target", "_blank");
};
}
}
}
}
5 changes: 3 additions & 2 deletions webpack.config.ts
Expand Up @@ -2,9 +2,9 @@
* Created by axetroy on 16-9-15.
*/

import * as webpack from "webpack";
import * as path from "path";
import { format } from "date-fns";
import * as path from "path";
import * as webpack from "webpack";
const TsconfigPathsPlugin = require("tsconfig-paths-webpack-plugin");
const pkg = require("./package.json");

Expand Down Expand Up @@ -79,6 +79,7 @@ const webpackConfig: webpack.Configuration = {
// @include *51.ruyo.net*
// @include *steamcommunity.com*
// @include *mijisou.com*
// @include *blog.csdn.net*
// @connect *
// @compatible chrome 完美运行
// @compatible firefox 完美运行
Expand Down

0 comments on commit 814b162

Please sign in to comment.