├── icon
├── QQ.jpeg
├── use.jpg
├── icon.png
└── exclusive-translation.png
├── tea.yaml
├── LICENSE
├── README.md
├── index.css
└── index.js
/icon/QQ.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wandou-cc/blog-ui/HEAD/icon/QQ.jpeg
--------------------------------------------------------------------------------
/icon/use.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wandou-cc/blog-ui/HEAD/icon/use.jpg
--------------------------------------------------------------------------------
/icon/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wandou-cc/blog-ui/HEAD/icon/icon.png
--------------------------------------------------------------------------------
/icon/exclusive-translation.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/wandou-cc/blog-ui/HEAD/icon/exclusive-translation.png
--------------------------------------------------------------------------------
/tea.yaml:
--------------------------------------------------------------------------------
1 | # https://tea.xyz/what-is-this-file
2 | ---
3 | version: 1.0.0
4 | codeOwners:
5 | - '0x35E95DD57848e20127221426788B7f832030a41d'
6 | quorum: 1
7 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022 wandou-cc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 | ## 设计初衷
39 | 作为一个CV工程师,面向CSDN 百度编程的程序员,每天都会用到CSDN 博客园 这种博客平台 又有个种限制 花里胡哨的UI页面 各种广告弹窗 还是比较烦人的 于是抽空搞了个插件。
40 |
41 | 大家可以试试 有问题及时联系作者就好
42 |
43 | 目前移动端问题比较多 尽量不要用移动端 精力有限 见谅 后续会考虑重新插件
44 |
45 | `油候`, `暴力猴` 均全部支持
46 |
47 | 祝各位使用愉快吧🌟🌟
48 |
49 | ## 兼容问题
50 | 测试了主流常用浏览器 `chrome` `edge` `360` `FireFox` `X浏览器` 都没问题
51 |
52 | 入口位置 移动端PC端同步也不区分平台
53 |
54 | ## 版本更新
55 | ### 1.3.4
56 | |序号 | 功能 |
57 | | ----------- | ----------- |
58 | | 1 | 知乎查看模式更新 |
59 | | 2 | 修复csdn不能复制问题 |
60 |
61 | ### 1.3.3
62 | |序号 | 功能 |
63 | | ----------- | ----------- |
64 | | 1 | 增加知乎 |
65 | | 2 | 删除在线统计 |
66 |
67 | ### 1.3.2
68 | |序号 | 功能 |
69 | | ----------- | ----------- |
70 | | 1 | 优化掘金 |
71 | | 2 | 增加在线统计 |
72 |
73 | ### 1.3.1
74 | |序号 | 功能 |
75 | | ----------- | ----------- |
76 | | 1 | 优化 |
77 |
78 | ### 1.2.9
79 | |序号 | 功能 |
80 | | ----------- | ----------- |
81 | | 1 | 修复移动端不能移动的bug |
82 | | 2 | 去掉思否处理 |
83 | | 3 | 增加知乎外链跳转 |
84 |
85 | 最近比较忙 更新时间有限见谅 有问题可直接提给我
86 |
87 | ### 1.2.8
88 | |序号 | 功能 |
89 | | ----------- | ----------- |
90 | | 1 | 修复移动端不能移动的bug |
91 | | 2 | 增加思否处理 |
92 |
93 | ### 1.2.7
94 | |序号 | 功能 |
95 | | ----------- | ----------- |
96 | | 1 | 优化性能 |
97 | | 2 | 增加掘金处理 |
98 |
99 | 掘金网站 由于vue框架写的 路由变化 导致我获取不到地址 所以在跳转到首页以及搜索页面的时候 需要刷新一下才能生效(想办法解决中)
100 |
101 |
102 | ### 1.1.6
103 | |序号 | 功能 |
104 | | ----------- | ----------- |
105 | | 1 | 修复若干bug |
106 | | 2 | 增加显示模式可以铺平可以居中显示 |
107 | | 3 | 增加目录锁定 |
108 | | 4 | 增加白色背景 对暗色主题兼容不好 |
109 |
110 |
111 | ### 1.1.5
112 | |序号 | 功能 |
113 | | ----------- | ----------- |
114 | | 1 | 修复若干bug |
115 | | 2 | 优化滚动条 |
116 | | 3 | 增加暴力猴支持 |
117 | | 4 | 入口支持拖动放置 |
118 |
119 |
120 | ### 1.1.4
121 | |序号 | 功能 |
122 | | ----------- | ----------- |
123 | | 1 | 修复文章详情页面不能打开登陆弹窗问题 |
124 | | 2 | 优化界面 |
125 | | 3 | 添加清除缓存功能 |
126 |
127 |
128 | ### 1.1.3
129 | |序号 | 功能 |
130 | | ----------- | ----------- |
131 | | 1 | 修复了若干BUG |
132 | | 2 | 去掉了H5状态下相关阅读打开app |
133 | | 3 | 去掉了是否继续浏览器阅读 |
134 | | 4 | 修复了火狐浏览器中滚动异常问题 |
135 | | 5 | 外链直接跳转 github加速除外 |
136 | | 6 | 添加列表页面的优化 |
137 | | 7 | 添加了搜索页面的优化 |
138 |
139 |
140 | ### 1.0.2
141 | 兼容火狐的问题
142 | ### 1.0.1
143 | 处理CSDN不同浏览器bug
144 |
145 | ### 1.0.0
146 | 基础版本 主要对 CSDN 文章详情页面进行优化 主要对 顶部 左侧 右侧 底部的ui展示 均可自定义配置展示
147 |
148 | |序号 | 功能 |
149 | | ----------- | ----------- |
150 | | 1 | 动态配置右侧显示 自定义配置显示模块 |
151 | | 2 | 去掉未登录状态下的顶部多余选项 |
152 | | 3 | 去掉复制超过140字符剪辑版版权的问题 |
153 | | 4 | 免登录复制 |
154 | | 5 | 自动展开代码块 |
155 |
156 | ## 使用
157 | 非常简单 当你安装成功之后 左侧将会出现一个
158 |
159 |
162 |
163 |
164 | 标志 悬浮即可 查看配置项
165 |
166 | 当然啦在移动端还是PC端是不一样的
167 |
168 |
169 |
170 | ## 常见问题
171 | 前端的同学可能一看就明白其实就是修改了样式 调整了布局 所以就涉及到元素选择 所以官方改了功能自然就会有问题
172 |
173 | 对于功能的失效联系作者 会及时更改修复 问题不大
174 |
175 |
176 | ## 联系方式
177 | 有问题可以进qq 群交流下载资源也可以找群主`免费`下载 后期可能搞个自助下载
178 |
179 |
180 |
--------------------------------------------------------------------------------
/index.css:
--------------------------------------------------------------------------------
1 | /* a:link,
2 | a:visited,
3 | a:hover,
4 | a:active {
5 | color: #4f4f4f;
6 | text-decoration: none;
7 | } */
8 |
9 | body {
10 | touch-action: none !important;
11 | }
12 |
13 | #blogUiApp {
14 | position: fixed;
15 | left: 5px;
16 | top: 150px;
17 | z-index: 9999;
18 | }
19 |
20 | .position {
21 | position: relative;
22 | height: 100%;
23 | width: 100%;
24 | }
25 |
26 | #blog-ui-main {
27 | position: absolute;
28 | left: 8px;
29 | top: 8px;
30 | cursor: pointer;
31 | box-shadow: 0 0 10px #ccc;
32 | border-radius: 5px;
33 | background-color: #fff;
34 | width: 28px !important;
35 | height: 28px !important;
36 | z-index: 999 !important;
37 | opacity: 0.6;
38 | animation: svgAnimation 10s infinite;
39 | }
40 |
41 | #blog-ui-main:hover {
42 | border-radius: 0px;
43 | box-shadow: 0 0 10px #fff;
44 | transition: all 0.5s;
45 | opacity: 1;
46 | }
47 |
48 | @keyframes svgAnimation {
49 | 0% {
50 | transform: translateY(0px)
51 | }
52 |
53 | 30% {
54 | transform: translateY(-5px)
55 | }
56 |
57 | 50% {
58 | transform: translateY(0px)
59 | }
60 |
61 | 70% {
62 | transform: translateY(-5px)
63 | }
64 |
65 | 100% {
66 | transform: translateY(0px)
67 | }
68 |
69 | /* to {
70 | transform: translate(0)
71 | } */
72 | }
73 |
74 | #blog-main {
75 | position: absolute;
76 | height: 60vh;
77 | width: 400px;
78 | top: -10px;
79 | left: -3px;
80 | z-index: 99;
81 | display: none;
82 | border-radius: 5px;
83 | box-shadow: 0 0 10px #ccc;
84 | background-color: #fff;
85 | padding: 10px;
86 | font-size: 12px;
87 | color: #4f4f4f;
88 | }
89 |
90 | .blog-main-title {
91 | text-align: center;
92 | font-size: 18px;
93 | margin: 8px;
94 | }
95 |
96 | .blog-main-title a {
97 | font-weight: 700;
98 | }
99 |
100 | .blog-ui-urltitle {
101 | font-size: 14px;
102 | margin: 5px;
103 | }
104 |
105 | .blog-ui-foot {
106 | position: absolute;
107 | bottom: 0;
108 | height: 50px;
109 | width: calc(100% - 20px);
110 | border-top: 1px solid #ddd;
111 | }
112 |
113 | .blog-ui-button {
114 | display: flex;
115 | justify-content: center;
116 | align-items: center;
117 | height: 100%;
118 | }
119 |
120 | .blog-ui-button-confirm {
121 | width: 60px;
122 | height: 30px;
123 | cursor: pointer;
124 | background: #fff;
125 | border: 1px solid #dcdfe6;
126 | outline: none;
127 | border-radius: 4px;
128 | }
129 |
130 | .blog-ui-button-confirm:hover {
131 | background: #104479;
132 | color: #fff;
133 | transition: all 0.5s;
134 | }
135 |
136 | .blog-ui-introduction {
137 | padding: 10px;
138 | }
139 |
140 | .blog-ui-setting {
141 | padding-top: 10px;
142 | height: calc(60vh - 80px);
143 | overflow-y: auto;
144 | position: relative;
145 | white-space: nowrap
146 | }
147 |
148 |
149 | .blog-ui-setting::-webkit-scrollbar {
150 | width: 6px;
151 | height: 6px;
152 | }
153 |
154 | .blog-ui-setting::-webkit-scrollbar-button {
155 | display: none;
156 | }
157 |
158 | .blog-ui-setting::-webkit-scrollbar-thumb {
159 | background: rgba(144, 147, 153, 0.3);
160 | cursor: pointer;
161 | border-radius: 4px;
162 | }
163 |
164 | .blog-ui-setting::-webkit-scrollbar-corner {
165 | display: none;
166 | }
167 |
168 | .blog-ui-setting::-webkit-resizer {
169 | display: none;
170 | }
171 |
172 |
173 | .blog-ui-config-title {
174 | padding: 5px;
175 | font-weight: 800;
176 | }
177 |
178 | .blog-ui-item-title {
179 | font-size: 16px;
180 | margin: 10px 0px;
181 | }
182 |
183 | .blog-ui-item {
184 | margin: 0px 8px;
185 | }
186 |
187 | .blog-ui-csdn-main {
188 | margin-top: 20px;
189 | display: flex !important;
190 | flex-direction: column;
191 | }
192 |
193 | .blog-ui-config-center {
194 | display: flex;
195 | justify-content: space-between;
196 | flex-wrap: wrap;
197 | }
198 |
199 | .blog-ui-config-center button {
200 | padding: 5px 10px;
201 | border-radius: 3px;
202 | color: #fff;
203 | border: none 0 !important;
204 | cursor: pointer;
205 | }
206 |
207 | .buttoncolor1 {
208 | background-image: linear-gradient(45deg, #13547a 0%, #80d0c7 100%);
209 | }
210 |
211 | .buttoncolor2 {
212 | background-image: linear-gradient(60deg, #96deda 0%, #50c9c3 100%);
213 | }
214 |
215 | .setting-item {
216 | display: flex;
217 | align-items: center;
218 | width: calc(50% - 20px);
219 | margin: 5px;
220 | }
221 |
222 | .form-check-label {
223 | margin-left: 10px;
224 | }
225 |
226 | .dialog-dom {
227 | position: fixed;
228 | top: 100px;
229 | left: 50%;
230 | transform: translateX(-50%);
231 | color: green;
232 | background-color: rgb(179, 232, 238);
233 | border-radius: 5px;
234 | z-index: 999;
235 | padding: 5px 15px;
236 | opacity: 0;
237 | }
238 |
239 | pre {
240 | -webkit-touch-callout: inherit !important;
241 | -webkit-user-select: inherit !important;
242 | -khtml-user-select: inherit !important;
243 | -moz-user-select: inherit !important;
244 | -ms-user-select: inherit !important;
245 | user-select: inherit !important;
246 | }
247 |
248 | code {
249 | -webkit-touch-callout: inherit !important;
250 | -webkit-user-select: inherit !important;
251 | -khtml-user-select: inherit !important;
252 | -moz-user-select: inherit !important;
253 | -ms-user-select: inherit !important;
254 | user-select: inherit !important;
255 | }
256 | .csdn-common-logo-advert {
257 | display: none !important;
258 | }
259 | .csdn-side-toolbar {
260 | left: inherit !important;
261 | }
262 |
263 |
264 | .bottom-tip {
265 | width: 100%;
266 | margin-top: 10px;
267 | border-top: 1px solid #ccc;
268 | }
269 |
270 |
271 | .gotogithub {
272 | text-align: center;
273 | margin-top: 10px;
274 | }
275 |
276 | .statement {
277 | padding: 5px;
278 | white-space: normal;
279 | font-size: 12px;
280 | color: #666;
281 | border-top: 1px solid #ccc;
282 |
283 | }
284 |
285 | .blog-ui-prompt {
286 | margin: 5px 5px 10px 5px;
287 | white-space: normal;
288 | }
289 |
290 | .blog-ui-version {
291 | text-align: center;
292 | font-size: 14px;
293 | font-weight: 800;
294 | margin: 10px;
295 | }
296 |
297 | .blog-ui-addQQ {
298 | text-align: center;
299 | text-shadow: 0px 0px 1px #666;
300 | font-weight: 800;
301 | }
302 |
303 | .blog-ui-issues {
304 | margin: 10px;
305 | }
306 |
307 | .blog-ui-issues a {
308 | display: flex;
309 | align-items: center;
310 | justify-content: center;
311 | }
312 |
313 | .blog-ui-advertis {
314 | padding: 15px 0px;
315 | border-bottom: 1px solid #ccc;
316 | border-top: 1px solid #ccc;
317 | }
318 |
319 | .blog-ui-advertis .advertis-warn {
320 | font-size: 16px;
321 | font-weight: 600;
322 | }
323 |
324 | .blog-ui-advertis a {
325 | display: flex;
326 | align-items: center;
327 | }
328 |
329 | .blog-ui-advertis img {
330 | width: 28px;
331 | height: 35px;
332 | margin: 10px;
333 | }
334 |
335 | .blog-top-banner,
336 | .blog-slide-ad-box,
337 | .box-shadow,
338 | #kp_box_www_swiper_ban,
339 | .blog-banner,
340 | .weixin-shadowbox,
341 | .feed-Sign-span,
342 | .feed-Sign-span .feed-Sign-style-old .open_app_channelCode,
343 | .btn_open_app_prompt_div,
344 | .dis-none,
345 | div[id^='dmp_ad_'],
346 | div[id^='kp_box_'] {
347 | display: none !important;
348 | }
349 |
350 | .passport-login-container {
351 | display: none;
352 | }
353 |
354 |
355 | .observeToolbar {
356 | position: relative !important;
357 | z-index: 99 !important;
358 | bottom: 0px !important;
359 | width: 100% !important;
360 | left: 0 !important;
361 | }
362 |
363 | /* 单选 */
364 | .radio-item {
365 | flex: 1;
366 | display: flex;
367 | align-items: center;
368 | }
369 |
370 | .radio-label {
371 | margin-left: 10px;
372 | }
373 |
374 | .bodyWhite {
375 | background: #eee !important;
376 | }
377 |
378 | .default-menu {
379 | position: fixed;
380 | top: 56px;
381 | display: block;
382 | }
383 |
384 |
385 | .touch-action {
386 | touch-action: none;
387 | }
388 | .touch-action-auto {
389 | touch-action: auto;
390 | }
391 |
392 | /* juejin */
393 |
394 | .guide-collect-popover,
395 | .vip-content,
396 | .app-download-sidebar-block,
397 | .login-guide-wrap,
398 | .advertisement,
399 | .sticky-block,
400 | .juejin-ab-test-wrap,
401 | .login-popover,
402 | .open-button,
403 | .vip-content {
404 | display: none !important;
405 | }
406 |
407 |
408 |
409 | .online {
410 | margin: 10px;
411 | font-size: 14px;
412 | }
413 |
414 | .waubutton {
415 | margin: 5px 10px;
416 | text-align: center;
417 | background-image: linear-gradient(45deg, #13547a 0%, #80d0c7 100%) !important;
418 | }
419 | .waubutton p {
420 | font-size: 14px !important;
421 | }
422 |
423 |
424 | .zhihuCreateTime {
425 | margin: 20px;
426 | color: #ccc;
427 | }
428 |
429 | #remuneration {
430 | display: none !important;
431 | }
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | // ==UserScript==
2 | // @name ⚡️ 掘金 |csdn |知乎 | 独家UI排版 更方便您的阅读📖 去广告🪧 免登录复制 一键复制 去剪贴板劫持 持续更新 外链跳转 宽屏展示 不定期帮忙下载资源
3 | // @namespace https://github.com/wandou-cc/blog-ui
4 | // @version 1.3.4
5 | // @description ⚡️ 掘金 |csdn | 知乎 独家UI排版 更方便您的阅读📖 去广告🪧 免登录复制 一键复制 劫持剪贴板 持续更新 |💫全新布局|🫥去掉一些花里胡哨的组件,阅读更加清晰|🐯基本实现显示部分由用户自己定制|🌈直接一键复制 不在需要登录|✨展开所有折叠代码,简化操作|支持移动端PC端通通优化|入口支持拖拽放置
6 | // @author wandou-cc
7 | // @include *://*.csdn.net/*
8 | // @include *://*juejin.cn/*
9 | // @include *://*zhihu.com/*
10 |
11 | // @resource css https://cdn.jsdelivr.net/gh/wandou-cc/blog-ui@20230912_v1/index.css
12 | // @require https://unpkg.com/better-scroll@latest/dist/better-scroll.min.js
13 |
14 | // @icon data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/4gIoSUNDX1BST0ZJTEUAAQEAAAIYAAAAAAQwAABtbnRyUkdCIFhZWiAAAAAAAAAAAAAAAABhY3NwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAA9tYAAQAAAADTLQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlkZXNjAAAA8AAAAHRyWFlaAAABZAAAABRnWFlaAAABeAAAABRiWFlaAAABjAAAABRyVFJDAAABoAAAAChnVFJDAAABoAAAAChiVFJDAAABoAAAACh3dHB0AAAByAAAABRjcHJ0AAAB3AAAADxtbHVjAAAAAAAAAAEAAAAMZW5VUwAAAFgAAAAcAHMAUgBHAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z3BhcmEAAAAAAAQAAAACZmYAAPKnAAANWQAAE9AAAApbAAAAAAAAAABYWVogAAAAAAAA9tYAAQAAAADTLW1sdWMAAAAAAAAAAQAAAAxlblVTAAAAIAAAABwARwBvAG8AZwBsAGUAIABJAG4AYwAuACAAMgAwADEANv/bAEMAUDc8RjwyUEZBRlpVUF94yIJ4bm549a+5kcj////////////////////////////////////////////////////bAEMBVVpaeGl464KC6//////////////////////////////////////////////////////////////////////////AABEIA/IDmAMBIgACEQEDEQH/xAAZAAEAAwEBAAAAAAAAAAAAAAAAAgMEAQX/xAAtEAEAAgECBAUFAQEBAQEBAAAAAQIDETEEEiFRMjNBYXETIlKBkUKhFCNisf/EABcBAQEBAQAAAAAAAAAAAAAAAAABAgP/xAAcEQEBAQEBAQEBAQAAAAAAAAAAARExQSECElH/2gAMAwEAAhEDEQA/AJgMMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIZL8lJszznyT66fpoyU56TVmnDkj/KzFh9fJ+X/ABKOJt6xEq5paN6zH6RXFa656W36fKxgTx5bUnp1jsmGNohS9bxrH8TRkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARmtbbxEpAKL8PE9adPZntWazpMaS3oZMdckaTv6SsqyslbTS2sNmO8XrrDFas1tMTvCeG/Jf2ndbFrYAyyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAp4imteaN4ZW68xFZm2zC1Go2Yb82OO8dFjDS80nWFv/AKbdoSxMaRknPkn10/SE5Lzvaf6YY2zMRvOiM5KR/qGIMXGuc+OPXX9OTxNfSJZRcMaP/T2p/wBcnibelYUOxEztBkMWzxF/b+I/Xyd/+IxS87Vt/HfpZPwn+C479bJ+Tn1b/lLv0cn4y79DJ+P/AFTEfqX/ACn+n1L/AJT/AFL/AM+Tt/0/8+T8f+hiP1L/AJT/AE+rf8pS+hk/H/rn0Mn4/wDQw+tk/J36+TvH8c+jk/Fz6OT8ZBOOIv2h2OJn1rH9VzjvH+LfxGYmN4mEwxojia+tZSjiMc94/TIGRMbYyUna0JbsDsTMbSmGN4xRlvG1pTjiLRvESYmNQpjiKzvEwsretvDMSmCQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFstK72j9AmM9uJj/Nf6rtmvb10+Fxca5mI3mI+UJzUj11+GTXVxcXGieJ/Gv9QtnvPrp8Kkox3ttWTFxyZmd5mXF0cNed9IWRwsf6tM/CmMo2xgxx/nX5Tita7ViP0mrjDFLTtWZ/ScYMk+mnzLYGmMscLb1tEJxwtfW0yvAxVHD449Jn5lOMWOP8R/EgVyK1jasfx0AAAAAAAAAAAAAcmtZ3rE/pGcOOf8x+kwFM8NSdpmEJ4WfS0T8tIJjFbBkr/nX4QmNN3oOTWLbxEmmPPGy3D0naJj4VW4a0eGYlTEK5r19dfldTiKz4uks1q2rP3RMOJjON8TExrE6w6w1tas61nRfj4iJ6X6T3SxMXjm+zqIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAja9aeKQSGe3E/jH7lTbJa28yuLjVbLSu86/Cq3Ez/mNPlQ7ETM6RGq4uO2va29plFbXh723jT5W14aseKZlVxlTrivbastlcdK7ViEk1cZa8NafFMQsrw1I31lcBjlaVrtWIdAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmIneNVV+HpbaNJ9loDHfBevprHsqeiryYK36x0nuJjLTJak9J6dmnHlrk9p7Mt6WpbS0ORMxOsFms2N4pw5uf7beL/8Aq5lkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJmIjWZ0hTfiIjpWNTBcrvnpXbrPsz3yWvvKC41i2+e9vXSPZUlWlrz9sTK+nDet5/UNLjPvssrgvb00j3aq0rTwxokmrimvDVjxTMra1isaREQ6CgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXrF40tGrHlxTjnvE7S2uWrFqzEx0EYGrDl540nxR/wBZ8lJx20nb0RrM1tExvBZqWN4jW0WrFo9UmWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc2VZOIiOles9wWzMRGszpCm/ERHSka+8qLXtedbTqi1jWJWta062nVFZTDe/XTSO8tFMFK9Z+6fdVxnpivfaOneV9OHrXxfdK4RcIiIjSOgAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvNTnp7xsxPRYs9eXLMek9SJVnDW3r+4aGPDOmWrYlYoAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTMRGszpAOq8mWtOm89lWTPM9KdI7qFkWRO+S1956dkHa1m06VjWWnHw8R1v1ns01iimO156R07tOPBWnWfulbEabCLgAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3Fx91Z9mlm4vxVj2EqmvS8fLcwVjW0R7t6VigCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqy5YpGkdbAlkyVxx137Mt8lrz127IzM2nWZ1l2tZtOlY1lqTGpEV2PBa3W3SF2LBFOtutlo1jlaVpGlY0dAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+ItzZZ9ujXe0UpNp9GCZ1mZneSJUsMa5a/Laz8LXrNv00JWKAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrNl5I0jxSDmbLyfbXxf/AMZpnWdZJnWdZWYcU5J69K92uNyOY8U5J6dI9Za6UrjjSsft2sRWNIjSHRQAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXmyfTp7zsCnicmtuSNo3Um67h8es807RscZXY68lIj+pgywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MxEazsCOS8Y66zv6Mdpm0zM7ylkvN7a+no5Sk3tFYakxqRLDinJb2jdtiIrGkRpEOUrFKxEbOjQAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5a0VjWZ0gC1opWZnZhyXm9tZSy5ZyW7R6QrGUsdOe8VbYiIiIjaGXh50ydfWGtKzQBEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGfib/wCI/a+08tZmfRhtM2tMz6rFjjbgx8lNZ8U7qOHpzX1naGta3AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXlzVx+89gSveKRraWTLknJPXb0hG95vbWzlazadIjWRk32dtS1Y1mJhqxYoxx3t3TmItExO0mprDHSWzFfnpr6+rLkpNLzH8dw35L+07l+lbAGWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPE20pp3ZV/Ez98R2hTEazENRqNmCvLijvPVYbQDYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATOm6GTLXHv1nsy5Mtsm+3YTVuXiPSn9Z993FuLDN+s9KqiFKTedIhrx44xx039ZdrWKxpWNEmbWbQBEVZ6c9NY3hkegyZ6ct9Y2lZWot4fJzV5Z3jZcwVtNbRMejdW0WrEx6liV0BEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZOI839IY/Mr8ws4mPvifZVWdLRPZqcaj0AgGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmIjWZ0hRk4mI6UjX3Bda0VjW06Qz5OImelOnuotabTradZcE13ciJtOkRrK2mC1utukNFKVpGlYLWdVY8ER1v1nsudGWQAAABG9YvSaykAwTGkzE7wu4a+k8k+uxxNNJ549d1MTpMTG8Nda63iNLc9ItCTLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjia60iezM32iLVmJ9WG0TW0xPo1Go2YL82OO8dFjHgycl+u07tg1AAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEb5K08UqL8TO1I095Bom0VjWZ0hTfiYjpSNfeWe1ptOtp1RE1K17XnW06orK4b2jXTT5RtWaTpaNFQpWb2iserXTHWm0de7JS3JaLR6NsTExExtLNSugIyAAAAAAAAjasWrMT6sVomszE7w3s/E02vHxKyrEeHvpblnaWpg2bMduekSUqYCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKOIx80c0bxuvAee0YM2mlLbekuZsOn3V29Y7KGutvRGXFnmv226x37NMTFo1idYGnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmYiNZnRVbiKV2nX4BaTMRGszoy24m0+GIhTa02nW0zJia124ildvulRfiL22+2PZUKmuu1ra06VjVLDj+pbrtG7XEREaRGkJalqivDflP6hbXHWm0JjOporzU56e8bLAR57Rw1/wDE/pHiKctuaNpVRMxMTG8Nda63iNLc1YtHqkyyAAAAAAAAOWrFqzE+roDBMTEzE+i7hr6W5Z2k4mmlotHqpidJiY9GuxrreI0tzVi0eqTLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz5cH+qR+mgFYHaXtSday1ZMUX67W7slomszE7w1LrUrXjz1t0t9srXnJ0y3ptPTsYutwppxNZ8UaStratvDMSK6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAACM3rXe0QCQptxNI21lXbibT4YiBNakbXrXxWiGO2W9t7SgYa124mseGJlVbiLztpClKKWttWZVNcm02nWZmXHbVms6WjRwHa1m06VjVdXh5nxTouxViuONOybNrOqZ4evLOmurK9BhvGl5j3WLGjhvLn5XKOGn7JjtK9mpQAQABG9eekwxTGk6N7LxFNL80bSsWO8NfrNJ+YaWCszWYmPRurMWrEx6lK6AiAAAAAAAAI5K89Jhi2b2TiK8uTX0nqsWJ8NfrNZ+YaGGluW0T2bYnWNYKV0BEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGTiJics6NN7ctZtPoxTOs6z6rFjiU0tEazWVvDU1tzT6NK2ra892J02bLYqW3j+KrcN+Nv6aahXPkr66/KyvFflX+KbYr13rKCrrbXPjn10+U4mJ2mJ+Hnu66bJi69AYYy3ja0pxxGSN9J+YMNaxmjip9a/yUo4qnrEhq8VRxGPvMfp2M+Of9CrBH6tPzj+n1KfnX+gkI/Up+df6fUp+df6CQj9Sn51/p9Wn5x/QSEPq4/zg+tj/KATFf18f5f8c/8ATj9/4C0Uf+qvpWXJ4rtT/omtAyzxVvSIRniMk+sR+jDWwYZy5J/3KMzM7zMmGt05KRvaP6hPEY49Zn4hjDDWmeKj/Nf6hPEZJ20j4hVEa7JRivP+ZVNcte1t7TKLsxMTpO5EazpAOOxWZ2iZaqYa1jrGs+6zZNTWWuC8+mnynXhvyt/GgTU1CuKldq/1MERVnrzY5nt1ZG+0a1mO8MDUajbhnXFVNTw0/ZMdpXM1KMWXplt8trHn82ywifDT98x3hpZOHn/6w1lKAIgAAhlrz0mPX0TAee08NbWs17Ks1eXJMek9XMVuXJEtX602gMsgAAAAAAACrPXmx6+sdVrgMDXw9uamnrDNevLea9k8FuXJHaejVarWAyyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5MxETM7QCjib7Uj5lQ7a02tMz6rOHpzX19Ia5GuNGOvJSISBlkAARtStt6xKQCmeHpO2sITw0+lon5aQ1dZJwZI9Nf2hNLxvWf43C6awON++7k0pP+Y/hq6wjb9LHP+YR+hj7f9XTWQa//AD09/wCuf+aneTTWUaf/ADV/KT/zR+U/w2Gsw0/+aPyl3/zV7ybDWUav/PTvLv0Mfaf6aayDVbBTlnTpLKuqOxEztC3h6Ra0zPXRpS1LWKMd5/zP8SjDkn/LYJqayxw9530hKOG72/40BpqmOHpG8zKcYqRtWP2mJprkREbRo6AjHn82zmGNctXMk65LT7p8PH/1j4a8aawGWQAAABhyRpktHu3MeeNMsrFifCz90x3hpZOHn/6w1lKMefzrNjHn86xCGDzqtjHg86rYUoAiAAAAKOJrrWLdmZuvXmpMd4YWo1G3HbmxxKbPwtuk1/bQzUqGS01jpvKut7RPWdVmWNa69lDUWNLqGKdafCbLIAAAAADPxNesW/TO25a82OY/bE1Go3UtzUiUlHDW6TXt1Xs1KACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjib6Viseq5iyW57zKxYi2YqcmOI9Z6yz4Kc+SO0dWwq0ARkAAAAAAAAAAAAAAAAAAABy3hn4YG6/gt8MKxqNPC7WXqOF8Nvlel6lABAAAAByZ0iZdV5p5cU+/QGNfwsfdM9oUNXDRpSZ7y1eNVcAyyAAAAMvE+ZHw1M3FeOPhYsV4Z0y1+W1hx+ZX5huKUYss65bfLaw3nW9p9yET4fzYa2XhvMn4ailAEQAAAAYsteXJaG1m4qPuie8LFiGCdMse/RsYInSYns3ROsalKM9o0tMNKrNHWJIRHFOltO69mjpOrRE6xqUroCIAAAAMWSvLkmG1n4mu1v0sWK8NuXJE/psee3Y7c1Ikq1IBGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFXEX5aaessizNfmyT2jo5jrz3iGp8ajRgpy49fWeq1x1lkAAAAAAAABTltPNp6EVcKcVuuk+q4oACAAAAAAAAIZp0xW+GJr4idMXzLI1Go1cNH/wA/2uQxRpirHsmzUoAIAAAAM/FT0rX9tDFltz5Jn0WLEG7HXlpWPZkxV5skQ2lWgCMgAAADNxXir8NLLxXjj4WLFdPHX5bmHH5lfluKVyZ0rM9mBszTpisxrFjRwseKWhTw0aY9e8rmalABAAAABTxMa44ntK5DLGuK3wRYxNuKdcVfhiauGnXHp2lqrVyGSNaT7JuMssy/HOtI9lM9J0WYZ3hqtVaAyyAAAAIZa82OYTAee08Nb7Zr26qcleXJMJcPbTLHv0avGq1gMsgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGW3JjmfX0TZuJtraK9iLFDTw1dIm3fozxGsxEerbWvLWIj0aq1IBlkAAAAAAAAVZo2la5aOaswRYzxOk6tETrGrMuxTrXTs1VqwBlkAAAAAAABn4q3Wtf2oiNZiO6WW3NkmUuHrrkie3Vrka8aojSNHQZZAAAAAAV5rcuOZ9Z6QxreIvzX0jaFcRMzERvLUajRw1ek2/UL0a15axEeiTNSgAgAAAAy8TP8A9PiGpjzzrlssWOYuuWvy2snDxrlj2aylUcTb7Yr36sy3iJ1yaduiFK814jvKzixrxxy46x7JgyyAAAAAAOWjWsx7OgPPaOFnpaFExpMwu4WfvmPZq8arSAyyz5I0vLuKfvdy+P8ASNJ0vHy14140AMsgAAAAAM3E16xb9KYnSYns1Z41xT7dWRqNRvidY1dV4Lc2KPbosZZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmdI1lhtPNaZn1auIty49O/RkajUXcPXW+vZqVYK8uOO89VrNSgAgAAAAAAAAACjJGl59zFOl/lLNHSJVxOkxLXjXjSAyyAAAAAAIZb8lJn19E2TPfnvpG0EWKmrh66U19ZZ6V57RWPVtiNI0j0aq10BlkAAAAQy35KTPrOyUzERMztDHkvN7a+nosiyINHDU/3P6U46Te0RDbERWIiNoW1a6AyyAAAAAAMN51vM95bLzpS0+zCsai/hY+60+zRM6Rqq4aNMcz3lbaOasx3gvUvWG081pnut4aut5ntCFsV6zpyz+mnDTkp13lbxasAZZAAAAAAAAYcnmW+VnDeZ+kMvmW+UuH82PhrxrxrAZZU5t4QjeFmbeFbU41ONIDLIAAAAADkxrEx3YZjSdG9jzxpln36rFizhZ8UftoZOHnTLHv0aylAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByZ0jUGbiLa5NOyulea8R3ctPNaZ7ruGrrabdmuRpodBlkAAAAAAAAAAABDJGtJUNNutZ+GZqNRopOtY+EkMU/YmzWQAAAAFGXNp9tN+4GfLpHLWevqzC3Di551nwx/1rjXFvD4+WOad52XAyyAAAAAAzcTeebkjaN1LVlwxedYnSXMWGKTrM6y1rWpYcfJXrvO6wGWQAAAAAAAFXETpj+ZZG69YvXSVVeHiLazbWOyytSrMUcuOseyYIyAAAAAAAAAAAAx5vNs7w/mwty4eedYnSXcWGMc6zOsrvxrVoCMqc28K1mbxR8IRvDU43ONIDLAAAAAAAzcVHWs/ppU8TGuPXtJFjPSeW0T2luee3Y55sdZ9lq1IBGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXnty4p9+ixm4qeta/sixQ14K8uKPfqyxGsxHduiNI07NVa6AyyAAAAAAAAAAAAMzSzTvKxqLcPhn5WKsPqtSpQAQABn4i8xMVjp06s7XlxfU666TDlOHis62nX2WVrVWLDN+s9K/wD9aoiIjSNh1LdTQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRknW8uU63hyZ1mZTxR92vs1434uBG9uWurLDk5KxOmqUTExrDMsw66z2WxrFwCMgACGSNcdo9k3N4Bga+HnXF8Syz0lfws9LQ1eNVoAZZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPNPNlt/GuZ0iZ7MM9ZWLE8Ea5Y9urYz8LHit+mgpQBEAAAAAAAAAAAAGad5aWZY1FmH1WqsO0rUvUoAIAAAAAAAAAAAACNrRWPunRz6tPyFxMciYmNY6uiAAAAAAAAAAAAAAAAAAAAI2tFY1lRbPaZ+3pDma3NfT0hWsjciyM143mJ/S/Hki8dOk9mR2tpraJgxbG0cidYiY9XUcwABG86UmUkMvgIqhdhj7ZnupaaxpWIaq11TlnW2nZbM6RqzzOs6pEjjRSvLWIU0jW8NBVoAjIAAADFkjTJaPdPhp0yTHeHOIjTLLmGdMtWvGvGwBlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAABXnnTFb+MbTxM/bEd5Zmo1Gvh40xR7rUccaY6x7JM1kAAAAByZiN50B0R5693PqV7mGJiMXrPrCQAAAAOW6Vn4Zl+SdKT7qGo1F2LwftYjSNKQkzUoAIAAAAAAAAAAIZL8ldfX0TZs9tb6diLJquZm06zOsuA06J0vNJ6bdmqJiYiY2liaOHt0mvbqlZ/UXAIwAAAAAAAAAAAAAAAAOTOkTPZ1G/gt8SDGA06gANPDzrj07StU8PtZczXO9ABBx0BGKVidYhIAQyTpSVC7NtClqNRbhjeVqvF4f2sZqUAEAAAAZeJ8yPhVWdLRPaV/FR1rLO1ONR6A5WdaxPeHWWQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGbip+6I9lMRrMR3WcROuX4hHFGuWvy1ONeNoDLIAAja0V3cvfl6eqmZmZ1lZFkTtkmduiG7jsRM7Rq004J/Tt2Pp27GmoJRaa7STW0bxKILq5YnxdE2Zfi8DNjNiYCIqzTtCuI1mITy+IxRrbXs1414uAZZAAAAAAAAAAAAGPJ5lvlsY8nmW+VjX5RAVsW4J/+n6VLeHj/AOnxBUvGkBlzAAAAAAAAAAAAAAAAHLRrWY7w6AwieWvLee09UGnUB2Os6QDRgjTHr3lajWOWsR2SZc6ACAAAAKs3oqW5vRU1ONRfi8CaGLwJs1KACAAAAKOK8NflmaeK8NflmanGo3Y/Lr8Qkjj8uvxCTLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHm82xg82HMvmW+UuH839NeNeNYDLIje3LGqSjJbW3tBFiMzrOsuC3FT/U/prjRTH62/iyOmzozrOgAgjNazvCQCv6VfdOI0jSHQAAHJiJ3jUiIjaHQAAAAAAAAAAAAAABlzxpkn3aleanPXpvBFl+soDToL+HjpM/pTETM6Ru10ry1iErP6qQCMAAAAAAAAAAAAAAAAAAIZKReunr6M1qWrPWGwNalxiiNdl+HFMTzW39IWuml/QAMgAAAAAK83hj5Ur8nglQ1Gouw+GflYqwzvC1mpQAQAAABRxXgj5ZmnivBHyzNTjUbsfl1+ISRx+XX4hJlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAABhyeZb5lPhvM/SOXzLfKXD+b+mvGvGsBllG06VmWdbmnpEKmo1EqV5raNCvFHTXusSpQBEByZiI1lXOXtH9MXFoqjLOvWP4siYmNYMMdAEAAAAAAAAAAAAAAAAAAAAV3xVv12lD/wA//wCv+Lw1dqFMdabdZ7pgIAAAAAAAAAACN7xWPdX9We0GLi4RraLR0SEAAAAAAAAAAAAAAAAAActGtZj2ZmpmmNJmFjUSxT9/yvZ6TpaGgqUARAAAAFHFeGvyzNHFb1hQ1ONRtp4K/EJORGkRDrLIAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHm6ZbGDzYd4iNMvzCOKdMtflrxrxtAZZUZZ1v8IJX63n5crGtohptorGlYh0GWByZiI1l1TltrbT0gkWI3tNp9kQbaF+KJiiNMevW38Ws2paAIyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAryU5usbwpalWWI6SsrUquJmJ1hfW3NXVnWYZ6zC0q4BlkAAAAAAB2I1FcdiqWmjq43Pyjyw7yw6Li5EeWDlSDDIrmJgTcmvZMZv5/xFRkjS8r1OaPuiSMxW0xOsRLM0Y51pBVqQCMgAAAMvEz/wDSPhDFGuSse7uedctneHjXLr2hrxrxrAZZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZuKjrWVMTpMS08TGuPXtLK1ONRvjrGrqGKebFWf0myyzTvLuPxw5O8u4/HDbbQAwwMzSzWjS0wsajiVI1vEIpVnltEtK0DjrDAAAAAAAAAAAAADtY1Fk1yImUorDrq43PzI5pA6K04aQ6AhNezixyY1TGb+f8AEAEcwAAAAAAAAAAABTltrOkei2dujOsWOLcMdJlCtZtOi+I0jSFtWugMsgAAAAACcbIJVnosa/PUgFdAAAAAHAQndXm2iVk9ZQy+BmdcvVC7D4f2pW4fVqrVoDLIAA46rzW5cU/wGS062me7RwsdLW/TM24Y5cVf61WqmAyyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjeOakx3hhegxZa8uSYWNRdw1vtmvZeyYLcuSPfo1lSs9vFPy5WdLRPulkjS8oNNNQjWdaxKTDAry11jmj0WAMonenLPTZBttditrHKsU4qzrr6LmKzQAQAAAAAAAAAASrsi7WfQjX5v1MBp0AAAAAcmdARtu4TOsjLlegAgAAAAAAAAAAjNazvCQDkREbQ6AAAAAAAAAAAJRbu6gLrc/SwQ5pOaTV/qJiHNLmsyaf1E5mIQmdQTWb+rRG/glJG3hn4GWdZh8U/CtZh8U/DVbq4BlgAAZ+JttX9r5nSNZYr25rzbusWFK814ju2s/DV6zbt0aSlAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZ+Jr0i36loRvXmrNe5FjE20tzUie7FMaTpK7hr9ZpPrs1Vq3NHSJUtMxrEwzzExOkkInit15ZXMy6l+aPdLCxMBGRHlr+MfxIAAAAAAAAAAAAAAAAB2JmHYtEohrU/Vibqs1ldX+1jmqGoaf2lNuyMzqCM22gAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjfwT8JIZPBIKFmHxT8K1uH1ardWgMsAI2tFazMgq4i+leWN5Zkr2m1ptPqnw9Oa+s7Q1xrjRiryUiPX1TBlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABl4imluaNpVRM1mJjeG29YvWayxTExMxO8NRqNtLResTHq5kpzRrG6jh8nLblnaWpnicZXYmYnWF18cW6xupmJidJal1rVtckT0npKxlSre1dpSxMaBVGXvH8SjJWfVMTExzmr3g1jvAjo5rHc1jvAOjmsd4dAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJmI3nQB0AAAAAAAAAAABXmnpELFGSdb/CxYguxR9nypaKxpWIWrUgc2ZZGXNk57aR4YdzZub7a7d+6lqRqR2ImZ0jeW3HSKUiFeDHyxzTvK5LUtAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUcRj1++P2vc3gisDXgyc9dJ8UKMuP6dvadkK2msxMbw11et7k1i0dYRx3i9dY39YTZZU2xT/mdUJiY3hpcXV1mGiaVn0RnFHpMrq6pFn0p7wfSt7GrqsWfSt7OTjtEdzTUF2K2vSVLtZ5bRJStI5E6xrDrLAAAAAAAAAAAAAAAAAAAAAAAACvJeY6Qri9o9ZSyxMW19JVtRqLq5Y/10TiYnZmdiZjaTDGkUxlmN+qcZazv0ZxMTEYtWfWEhAHNYjeQdEJyVj1RnL2j+mLiyZ03V2y+lf6rm0zvLjWLjszMzrKWO2loj0lBZjprOs7QVauAZYAAAAAAAAAARtPLWZZ1mW2s6RtCtqNRKkc1ohoV4q6Rr3cyZq06R1lL9SrLWisazOkMuXLN+kdKoXva862lFZFkGjBi/wB2/UGLB/q8fpoS0tAEZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARvSL10ljtWa2mJbleXHGSPeNpWVZWWl5pbWGylovXWGKYms6T0mEsd5pbWP4tmrY2iNLxeusJMsgAAAAAKctdJ5oVtMxrGks9o5Z0lqVqVZit/mf0tZonSdYX1tzRqliWJAIgAAAAAAAAAAAAAAAAAAAAADm+6FsUT4eiwFZ7Vmu8ItSE46z6afC6uqBZOKfSdUZpaPSV1dRAUdcAAdiJnaEox2n2BB2KzO0LYxRG/VOOiamoVxxHW3VYDLIAAAAAAAAAAhkvyxpG7t7xWPdRMzM6ysiyOJUrzW09HIjWdIX0ryxotq2u215Z0306MLehOOkzrNY1SVJWWmO19o/bTjxVp13num6WmgCIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAry4oyR2t3ZLVms6TGkt6GTHGSNJ37rKsrJW00nWJaseWLx2nszXpak6TH7R2XNXreM2PPp0v8A1oZxHQBAABDJTmj3TAZna2ms6p5Ka/dH7VNdb60xMTGsOs9LzWfZfExMawzYzY6AIAAAAAAAAAAAAAAAAAAAAAAAAAA4csdo/joCPLX8Y/jukR6Q6AAAAAAAAAAAAAA5M6R1B1C94r0jdG+T0r/VSyNSOzMzOshEazpC6lOXrO624ulKcsdd0wZYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmImNJjWGfJgmOtOsdmkJV1g0nXRsxRNcdYndJ1bdLQBEAAAAFWSnrH7haEqsqVbTWeiy+PXrXdVPRrrXV9bxb57JMyyuX0t/UsZsWjkTEx0l1EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcmYjedAdcV2y/jCFrTbeVxcWWyxG3VVNptvLjsRrsuNY4lWs2nonXF62/iyI02LUtcrWKx0SBlkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARtSLb790gGe1Jrvsi0oWxRO3RZWtVRMxPSVlcv5Qrms13hxeq0xMTtLrNE6bJxltG/VMZxcIRkrO/RKJidp1RHQAAAAAAAAAAAAAAAAAAAAAAAAAByZiN50RnJWPXUExVOXtCM5LT6/xcXF0zEbyhOWsbdVTi4uJzktO3RHXXcSjHafY4qDsRM7LYxRG/VOIiNjU1VXFM79FlaxXaEhnU0AEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3QtiiduiwBRalo9NUGpGaxO8LrWs7qycXaf6jOO0en8XV1yL2j1TjL3hW4YYvjLX3h2LVnaYZwxMahmiZjZ3nt3lMMaBR9S3d36tu0GJi4U/VntDv1v/AM/9TDFoq+rHZ36sdjDFgq+r7H1v/wA/9Mpi0VfVns59W3suGLhR9S3dznt3kwxocZ9Z7y4YuNHNWPWHPqV7qBcMXTljtLk5e0KgwxOctp7Q5NrTvMouxEztEiuCcY7T7JRi7yaaqdiJnaNV0Y6x6f1JNTVMYrTv0TjFHrOqwTU1yIiNodAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAByYid41RnHWfRMBXOKPSUfpT3hcGrqj6duznLbtLQLprNpPZxqcNXWYadI7Q5y1/GP4aazjRyV7Qcle0LprONHJXtByV7QaazjRy1/GP47pHaE01md0ntLSGms/JbtLv07dl4amqfpW9iMU+swuDTVcYo9Zl2MdY9ExNNcisRtEOgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACPPWP8AUHPX8oBIR56/lBz1/KASEeev5Qc9fyj+gkOOgAAAAAAAAAAAAAAAAAAAAAAAAAAA4Do5rHd0AAAAAAAHNY7wDo4h9WvuCwcrMWjWHQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZb+O3yilfx2+V2Hy2m9ZxrE1NZBscmIneDTWWJmNp0WUzTHS3X3WWx1n00+FN8c094PlPlaImJjWHWbHfln2lpSxLMAQ+rTuImOROsaw6AAAAAAAAAAAAAAAAAAAAArzeX+1ivN5f7IsUU8cfLWy08cfLUtWgCMgAAADJO8tbJO8rGo0YvLhnneWjD5cM87yQjRi8uE0MXlwmlSgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLfx2+V2Hy1N/Hb5XYfLW8avFgCMgADkxrExLoDJMaTMdmjFOtI9uinL5krMHhn5W8avFrJPilrZJ8UkI008EfCSNPBHwkjIAAAAAAAAAAAAAAAAAAAArzeX+1ivN5f7IsU08cfLUy08cfLUtWgCMgAAADJO8tbJO8rGo0YfLhnnxT8tGHy4Z58U/JCdaMXlwmhi8uE0qUAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZb+O3yuw+Wpv47fK7D5a3jV4sARkAABDJflj3kFGSdbzK3BH2TPuo3aqxy1iFrVSZJ8UtbJPikhGmngj4SRp4I+EkZAQtkrXffsCYonNPpEQ59a3suLjQKa5o/1H8WxMTGsTqhjoAgAADgOjm7oAAAAAACvN5f7WK83l/sixTTxx8tTLTxx8tS1aAIyAAAAMk7y1sk7ysajRh8uGefFPy0YfLhnnxT8kJ1oxeXCaGLy4TSpQAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlv47fKePJWtdJ1Qv47fLkVmdomWm1/wBavufWr7qeS34z/Dkt+M/xMiZF31q+59avup5LfjP8c5bfjP8ADIZFls0z4Y0VzMzOsuO1nlnWFVdix6fdP6Wq6ZIt02lYzWaMk+KWtknxSsWNNPBHwkjTwR8OZLctfedkRHLk0+2u6mIm06R1kiJtbSN5aaUikaQvF4rrh/Kf479CO8rRNTWe2K1eu8I1tNZ1hqU5cf8AqP2sqyrK2i0awkzY78tvb1aUsSwcmYrGsus2S/Pb29CQk122WZ8PSEJmZ3lPHi5us7LorWNohdxdkZUue35S0zWJ3iFWTFpGtf4aar+pf8pPqX/KXI3XxjpMRMRuq34rx3tN4iZloRilYnWI6pM1mgAgrzeX+1ivN5f7IsU08cfLUy08cfLUtWgCMgAAADJO8tbJO8rGo0YfLhnnxT8tGHy4Z58U/JCdaMXlwmhi8uE0qUAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZb+O3yuw+Wpv47fK7D5a3jV4sARkAByYid41V3wxPWvSey0F1k6xPuvxX5o0neHM1NY5o3hTWeW0S11etbJbeWpltvKQjTTwV+FOa2t9Oy6ngj4ZpnWZkhF2CvTm7rUaRpSI9kkqUAEHHQGW9eW0wuxW1pHt0Qzx1iXcE9ZhfGrxPLOlJ9+iilea0Qtz+CPlDD5n6JwnF7oIyAAzZa8t+m0rME/bMdnM/wDlzBvK+NeLwEZAAFeby/2sV5vL/ZFimnjj5amWnjj5alq0ARkAAAAZJ3lrZJ3lY1GjD5cM8+Kflow+XDPO8/JCdaMXlwmhi8uE0qUAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZb+O3yuw+Wpv47fK7D5a3jV4sARkAAAByY1iYZGxkneVjUaMc644Z7by0YvLhnneSEaa+XHwytVPBHwzT0nQhGp1ys61ifZ1GQAAAFOfaHMHjn4dzz1iHMEdZlfGvFmWNaT/Wes8tolrZstOW3TaSEaInWNYdZseSadJ6wujJWfX+piWJiM3rH+oVZMvN0r0gwxHLbmv02hZgjSuvdVSk3nRpiNI0hatdARkAAV5vL/AGsV5vLkixTTxx8tTJWdLRPu1rVoAjIAAAAyTvLWyTusajRi8uGed5aMXlwzzvPyQjRi8uE0MXlwmlSgAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLfx2+V2Hy1N/Hb5XYfLW8avFgCMgAAAOWnSsyyLc19ftj9oY681ohY1PjRSNKRHszW3lrZJ3khGmngr8KMsaXn36r6eCvwjlrzV6bwTqTrmG2tdOy1lraa21hpraLRrBSx0BEAVZb6RyxvIqrJbmvMrsMaU17qaV5rRDTstWus2S3Nee3o0W8M/DIQicYrTXWP45NLRvWWnaHTTWSK2naJWVwzPi6QvDU1ytYrGkOgiAAAACNo1rMJAMbVSeakSoy15ba+ku4r8s6TtLV+tX60DjrLIAAACN50pMsq3NfWeWNoRxV5r+0LGp8jRWNKxDLO8tbJPikhGjF5cJoYvLhNKlABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGW/jt8rcMxFOswqv47fKLTbXzV/KP6c1fyj+sgmJjXzV/KP65zV/KGUMMaJy1j11+Fd8s26R0hCK2naJTrhtO/Q+Q+RCImZ0hopSKR7+rtaxWOiRaloyTvLWyT4pIsaaeCPhJGngj4SRlRlx6fdX9oVtNZ1hqV3xRbrHSVlalcjNWd+iX1ad1M4rx6a/Dn07/jJkMids0z0rGnuriJtOkdZWVwzO86La1isdINw2RylIpHv6pgjLjNes1tpLTMxG86OWrFo0klWVTTNMRpMarPrV7SjOCfSf6j9K/aP6vxfiz61fd36tO6n6d+zn07/jJkMjRF6z/qEmSYmN4mHa3tXaenYwxqEa2i1dYSRkAAABG1YtXSWa1ZrOktaNqxaNJglWVRTJNem8Lq5Kz66fKq2G0bdYQmJjeGvlXJWrWJ2kZBMMapvWN5hVfLM9K9IVJ1xWnfpHuYZIjETM6Q00ryV0/pSkUjp/Ui1LRknxS1sk+KSLGjF5cJoYvLhNKlABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNI7GkdnQHNI7GkdnQHNI7GkdnQAAAABzR0AAAAAAAAAABTnnpEOYNeaevR3PHWJcwT90wvjXi8BGQAHFGasVmJjaWhnzWi1tI2hYsSwT1mFynBG8rkpQAQAAAAc3dAR5Kz/AJj+HJX8YSAciIjaHQAAAQ+nX8UwHIiIjSNnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABHJXnrp6s3Ws9phrQvji++/dZVlQrm/KP4nGSk+qqcNo26ozS0f5kyLkaPqU/KEZy1jbqo5bdp/jsY7z/kyGRK+WbdI6QjSs2nSFlcP5T/FsRERpEGmlYisaQ6CMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/Z
15 | // @grant unsafeWindow
16 | // @grant GM_addStyle
17 | // @grant GM_getResourceText
18 | // @grant GM_setValue
19 | // @grant GM_getValue
20 | // @grant GM_deleteValue
21 | // @grant GM_listValues
22 | // @license MIT License
23 | // @note 1.3.4 修复了一些问题
24 | // @noframes
25 |
26 | // ==/UserScript==
27 |
28 | (function () {
29 | GM_addStyle(GM_getResourceText("css"));
30 | const VERSION = '1.3.3'
31 | const TITLE = 'BLOGUI'
32 |
33 | let ISH5 = null
34 | let CURRENTPAGES = null
35 |
36 | const BLOGUICONFIG = {
37 | 2: {
38 | webType: "CSDN",
39 | pc: [
40 | {
41 | title: "查看模式",
42 | children: [
43 | { type: "radio", for: "CsdnRadioC", label: "居中显示", checked: true, getEvent: 'csdnRadioC' },
44 | { type: "radio", for: "CsdnRadioP", label: "铺平展示", checked: false, getEvent: 'csdnRadioP' },
45 | ]
46 | },
47 | {
48 | title: "右侧选项",
49 | children: [
50 | // 左侧
51 | { type: "checked", domId: "#asideProfile", for: "CsdnAuthorInfo", label: "作者信息", checked: true },
52 | { type: "checked", domId: "#asidedirectory", for: "CsdnDirectory", label: "目录", checked: false, getEvent: 'csdnDirectory' },
53 | { type: "checked", domId: "#asideSearchArticle", for: "CsdnSerch", label: "搜索博主文章", checked: false },
54 | { type: "checked", domId: "#asideRank", for: "CsdnAsideRank", label: "是否入选", checked: false },
55 | { type: "checked", domId: "#asideHotArticle", for: "CsdnHotPage", label: "热门文章", checked: false },
56 | { type: "checked", domId: "#asideCategory", for: "CsdnCategory", label: "分类专栏", checked: false },
57 | { type: "checked", domId: "#asideNewComments", for: "CsdnComments", label: "最新评论", checked: false },
58 | { type: "checked", domId: "#asideNewNps", for: "CsdnNewNps", label: "推荐博客", checked: false },
59 | { type: "checked", domId: "#asideArchive", for: "CsdnArchive", label: "最新文章", checked: false },
60 | { type: "checked", domId: "#asideWriteGuide", for: "CsdnWriteGuide", label: "发布文章", checked: false },
61 | ]
62 | },
63 | {
64 | title: "文章底部",
65 | children: [
66 | { type: "checked", domId: ".recommend-box", for: "CsdnRecommend", label: "底部相关推荐", checked: false },
67 | { type: "checked", domId: "#pcCommentBox", for: "CsdnpcCommentBox", label: "评论", checked: false },
68 | { type: "checked", domId: "#blogExtensionBox", for: "CsdnblogExtensionBox", label: "引流信息", checked: false },
69 | { type: "checked", domId: "#treeSkill", for: "CsdntreeSkill", label: "知识档案匹配", checked: false },
70 | ]
71 | }, {
72 | title: "顶部导航",
73 | children: [
74 | { type: "checked", domId: "", for: "Csdn2top", label: "顶部导航信息", checked: false, getEvent: 'removeTopbar' },
75 | ]
76 | }, {
77 | title: "右下角悬浮",
78 | children: [
79 | { type: "checked", domId: "", for: "CsdnSideToolbar", label: "侧边悬浮(略有延迟)", checked: false, getEvent: 'removeSideToolbar' },
80 | ]
81 | }, {
82 | title: "其他",
83 | children: [
84 | { type: "checked", domId: "", for: "whiteBack", label: "白色背景(对于暗色主题兼容并不好)", checked: false, getEvent: 'whiteBack' },
85 | ]
86 | },
87 | {
88 | title: "操作",
89 | children: [
90 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "2")' }
91 | ]
92 | }
93 | ],
94 | h5: [
95 | {
96 | title: "底部",
97 | children: [
98 | // 底部相关推荐
99 | { type: "checked", domId: "#recommend", for: "CsdnH5Recommend", label: "底部相关推荐", checked: false },
100 | { type: "checked", domId: "#comment", for: "CsdnH5Comment", label: "底部登录", checked: false },
101 | { type: "checked", domId: "#blogExtensionBox", for: "CsdnH5blogExtensionBox", label: "引流信息", checked: false },
102 | { type: "checked", domId: "", for: "CsdnH5operate", label: "底部操作是否固定", checked: false, getEvent: 'operate' }
103 | ]
104 | }, {
105 | title: "顶部",
106 | children: [
107 | { type: "checked", domId: ".openApp", for: "CsdnH5openApp", label: "打开App", checked: false }
108 | ]
109 | },
110 | {
111 | title: "操作",
112 | children: [
113 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "2")' }
114 | ]
115 | }
116 | ]
117 | },
118 | 3: {
119 | webType: "CSDN",
120 | pc: [
121 | {
122 | title: "顶部导航",
123 | children: [
124 | { type: "checked", domId: "", for: "Csdn3top", label: "顶部导航信息", checked: false, getEvent: 'removeTopbar' },
125 | { type: "checked", domId: ".blog-nps", for: "CsdnBlogNps", label: "推荐CSDN", checked: false }
126 | ]
127 | }, {
128 | title: "右侧",
129 | children: [
130 | { type: "checked", domId: ".blog-slide-box .template", for: "Csdntemplate", label: "热门推荐/作者推荐", checked: true },
131 | { type: "checked", domId: ".blog-slide-box .blogTree", for: "CsdnblogTree", label: "技能树", checked: true },
132 | ]
133 | },
134 | {
135 | title: "其他",
136 | children: [
137 | { type: "checked", domId: "", for: "CsdnblogNav", label: "平铺显示", getEvent: 'blogNav' }
138 | ]
139 | },
140 | {
141 | title: "操作",
142 | children: [
143 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "3")' }
144 | ]
145 | }
146 | ]
147 | },
148 | 4: {
149 | webType: "CSDN",
150 | pc: [
151 | {
152 | title: "顶部导航",
153 | children: [
154 | { type: "checked", domId: "", for: "Csdn4top", label: "顶部导航信息", checked: false, getEvent: 'removeTopbar' }
155 | ]
156 | },
157 | {
158 | title: "右侧",
159 | children: [
160 | { type: "checked", domId: ".main-rt .so-questionnaire-body", for: "Csdnquestionnaire", label: "推荐CSDN", checked: false },
161 | { type: "checked", domId: ".main-rt .so-hot-words", for: "Csdnhot-words", label: "相关搜索", checked: false },
162 | { type: "checked", domId: ".main-rt .wrap-hot", for: "Csdnwrap-hot", label: "猜你想搜", checked: false },
163 | { type: "checked", domId: ".main-rt .related-list", for: "related-list", label: "热搜榜", checked: false },
164 | { type: "checked", domId: ".main-rt .so-items-taglist", for: "Csdntaglist", label: "相关标签", checked: false }
165 | ]
166 | },
167 | {
168 | title: "其他",
169 | children: [
170 | { type: "checked", domId: "", for: "CsdnSoNav", label: "平铺显示(请勿与其他同用)", getEvent: 'soPc' }
171 | ]
172 | },
173 | {
174 | title: "操作",
175 | children: [
176 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "4")' }
177 | ]
178 | }
179 | ]
180 | },
181 | 5: {
182 | webType: "JUEJIN",
183 | pc: [
184 |
185 | // {
186 | // title: "查看模式",
187 | // children: [
188 | // { type: "radio", for: "JuejinRadioC", label: "放大显示", checked: true, getEvent: 'juejinRadioC' },
189 | // { type: "radio", for: "JuejinRadioP", label: "居中显示", checked: false, getEvent: 'juejinRadioP' },
190 | // ]
191 | // },
192 | {
193 | title: "顶部",
194 | children: [
195 | { type: "checked", label: "顶部操作", for: "JuejinTop", checked: false, getEvent: 'JuejinTop' }
196 | ]
197 | },
198 | {
199 | title: "左边栏",
200 | children: [
201 | { type: "checked", domId: ".article-suspended-panel", for: "JuejinSuspended", label: "点赞收藏等按钮", checked: false },
202 | ]
203 | },
204 | {
205 | title: "右边栏",
206 | children: [
207 | { type: "checked", domId: ".author-block", for: "JuejinAuthor", label: "作者信息", checked: true },
208 | { type: "checked", domId: ".article-catalog", for: "JuejinSticky", label: "目录", checked: true, getEvent: 'JuejinGetMenu' },
209 | { type: "checked", domId: ".wechat-sidebar-block", for: "JuejinSidebar", label: "圈子", checked: false },
210 | { type: "checked", domId: ".next-article", for: "JuejinNext-article", label: "下一篇", checked: false },
211 | { type: "checked", domId: ".related-entry-sidebar-block", for: "JuejinRelated", label: "相关文章", checked: false, getEvent: 'JuejinRelated' },
212 | ]
213 | },
214 | {
215 | title: "底部",
216 | children: [
217 | { type: "checked", domId: ".column-container", for: "JuejinContainer", label: "收录", checked: false },
218 | { type: "checked", domId: ".extension-banner", for: "JuejinExtension-banner", label: "插件", checked: false },
219 | { type: "checked", domId: ".category-course-recommend", for: "JuejiCategory", label: "相关课程", checked: false },
220 | { type: "checked", domId: ".comment-list-box", for: "JuejinComment", label: "评论", checked: false },
221 | { type: "checked", domId: ".recommended-area", for: "JuejinRecommended", label: "相关推荐", checked: false },
222 | { type: "checked", domId: ".meiqia-btn", for: "JuejinMeiqia", label: "建议反馈", checked: false },
223 | { type: "checked", domId: ".recommended-links", for: "JuejinLinks", label: "友情链接", checked: false }
224 | ]
225 | },
226 | {
227 | title: "操作",
228 | children: [
229 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "5")' }
230 | ]
231 | }
232 | ]
233 | },
234 | 6: {
235 | webType: "JUEJIN",
236 | pc: [
237 | {
238 | title: "顶部",
239 | children: [
240 | { type: "checked", label: "顶部操作", for: "JuejinTop", checked: false, getEvent: 'JuejinTop' }
241 | ]
242 | },
243 | {
244 | title: "右边广告",
245 | children: [
246 | { type: "checked", domId: ".signin-tip", for: "JuejinSignin", label: "签到", checked: true },
247 | { type: "checked", domId: ".user-block", for: "JuejinUserBlock", label: "作者榜", checked: false },
248 | { type: "checked", domId: ".link-block", for: "JuejinLinkBlock", label: "插件列表", checked: false },
249 | { type: "checked", domId: ".index-aside-footer", for: "JuejinAsideFoot", label: "底部版权", checked: false },
250 | ]
251 | },
252 | {
253 | title: "操作",
254 | children: [
255 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "6")' }
256 | ]
257 | }
258 | ]
259 | },
260 | 7: {
261 | webType: "JUEJIN",
262 | pc: [
263 | {
264 | title: "顶部",
265 | children: [
266 | { type: "checked", label: "顶部操作", for: "JuejinTop", checked: false, getEvent: 'JuejinTop' }
267 | ]
268 | }
269 | ]
270 | },
271 | 8: {
272 | webType: "SiFou",
273 | pc: [
274 | {
275 | title: "查看模式",
276 | children: [
277 | { type: "radio", for: "SiFouRadioC", label: "居中显示", checked: true, getEvent: 'SiFouRadioC' },
278 | { type: "radio", for: "SiFouRadioP", label: "铺平展示", checked: false, getEvent: 'SiFouRadioP' },
279 | ]
280 | },
281 | {
282 | title: "文章底部",
283 | children: [
284 | { type: "checked", domId: "#answer-question", for: "SiFouQuestion", label: "撰写回答", checked: true },
285 | { type: "checked", domId: "", for: "SiFouMt4", label: "相似问题", checked: true, getEvent: 'similarPro' }
286 | ]
287 | }, {
288 | title: "顶部导航",
289 | children: [
290 | { type: "checked", domId: "", for: "SiFoutop", label: "顶部导航信息", checked: false, getEvent: 'removeSifouTopbar' },
291 | ]
292 | },
293 | {
294 | title: "操作",
295 | children: [
296 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "8")' }
297 | ]
298 | }
299 | ]
300 | },
301 | 9: {
302 | webType: "SiFou",
303 | pc: [
304 | {
305 | title: "查看模式",
306 | children: [
307 | { type: "radio", for: "SiFouRadioC", label: "居中显示", checked: true, getEvent: 'SiFouRadioC' },
308 | { type: "radio", for: "SiFouRadioP", label: "铺平展示", checked: false, getEvent: 'SiFouRadioP' },
309 | ]
310 | },
311 | {
312 | title: "文章底部",
313 | children: [
314 | { type: "checked", domId: "#comment-area", for: "SiFouComment", label: "评论", checked: true },
315 | { type: "checked", domId: "", for: "SiFouRead", label: "继续阅读", checked: false, getEvent: 'similarRead' }
316 | ]
317 | }, {
318 | title: "顶部导航",
319 | children: [
320 | { type: "checked", domId: "", for: "SiFoutop", label: "顶部导航信息", checked: false, getEvent: 'removeSifouTopbar' },
321 | ]
322 | },
323 | {
324 | title: "操作",
325 | children: [
326 | { type: "button", class: "buttoncolor1", label: "初始化当前页面配置", getEvent: 'clearCache("BLOGUICONFIG", "9")' }
327 | ]
328 | }
329 | ]
330 | },
331 | 10: {
332 | webType: "ZhiHu",
333 | pc: [
334 | // {
335 | // title: "查看模式",
336 | // children: [
337 | // { type: "radio", for: "ZhiHuC", label: "居中显示", checked: true, getEvent: 'ZhiHuRadioC' },
338 | // { type: "radio", for: "ZhiHuP", label: "铺平展示", checked: false, getEvent: 'ZhiHuRadioP' },
339 | // ]
340 | // },
341 | {
342 | title: "右侧",
343 | children: [
344 | { type: "checked", domId: ".css-oyqdpg", for: "ZhihuSimilarQuestions", label: "相关问题", checked: false },
345 | { type: "checked", domId: "div[data-za-detail-view-path-module_name='相关推荐']", for: "ZhihuRecommend", label: "相关推荐", checked: false },
346 | { type: "checked", domId: "Footer", for: "ZhihuQFooter", label: "版权其他", checked: false }
347 | ]
348 | }
349 | ]
350 | },
351 | 11: {
352 | webType: "ZhiHu",
353 | pc: [
354 | {
355 | title: "查看模式",
356 | children: [
357 | { type: "radio", for: "ZhiHuC", label: "居中显示", checked: true, getEvent: 'ZhiHuRadioC' },
358 | { type: "radio", for: "ZhiHuP", label: "铺平展示", checked: false, getEvent: 'ZhiHuRadioP' },
359 | ]
360 | },
361 | {
362 | title: "底部",
363 | children: [
364 | { type: "checked", domId: "div[aria-label='推荐阅读']", for: "ZhihuRead", label: "推荐阅读", checked: false }
365 | ]
366 | }
367 | ]
368 | },
369 | 12: {
370 | webType: "ZhiHu",
371 | pc: [
372 | {
373 | title: "右侧",
374 | children: [
375 | { type: "checked", domId: "div[aria-label='搜索发现']", for: "ZhihuSearch", label: "搜索发现", checked: false },
376 | { type: "checked", domId: "Footer", for: "ZhihuSQFooter", label: "版权其他", checked: false }
377 | ]
378 | }
379 | ]
380 | },
381 | }
382 | let asideWidth = '0px'
383 |
384 | // ---------- 通用方法 ------------
385 |
386 | // 通过当前地址获取现在是那个网站
387 | function initUrl() {
388 | let url = window.location.href
389 | let urlResList = [
390 | { platform: 'CSDN', reg: /.*blog.csdn.net.*\/details\/.*/, title: 'CSDN详情优化', key: 2 },
391 | { platform: 'CSDN', reg: /.*blog.csdn.net\/nav.*/, title: 'CSDN文章类型列表优化', key: 3 },
392 | // { platform: 'CSDN', reg: /.*blog.csdn.net\.*/, title: 'CSDN文章类型推荐优化', key: 3.1 },
393 | { platform: 'CSDN', reg: /.*so.csdn.net\/.*/, title: 'CSDN搜索页面', key: 4 },
394 | { platform: 'Juejin', reg: /juejin.cn\/post\/.*/, title: '掘金文章详情', key: 5 },
395 | { platform: 'Juejin', reg: /juejin.cn\/search\?.*/, title: '掘金搜索页面', key: 7 },
396 | { platform: 'Juejin', reg: /juejin.cn/, title: '掘金首页', key: 6 },
397 | { platform: 'SiFou', reg: /segmentfault.com\/q\/.*/, title: '思否问答详情', key: 8 },
398 | { platform: 'SiFou', reg: /segmentfault.com\/a.*/, title: '思否文章详情', key: 9 },
399 | { platform: 'ZhiHu', reg: /zhihu.com\/question\/.*/, title: '知乎问答', key: 10 },
400 | { platform: 'ZhiHu', reg: /zhuanlan.zhihu.com\/p\/.*/, title: '知乎专栏', key: 11 },
401 | { platform: 'ZhiHu', reg: /.*zhihu.com\/search\.*/, title: '知乎搜索', key: 12 },
402 | ]
403 |
404 | for (let i = 0; i < urlResList.length; i++) {
405 | if (urlResList[i].reg.test(url)) {
406 | CURRENTPAGES = urlResList[i].key
407 | return urlResList[i]
408 | }
409 | }
410 | }
411 |
412 | // 外链跳转
413 | function jumpLink() {
414 | let url = document.URL
415 | let target_url = ''
416 | let flag = false
417 |
418 | if (/https:\/\/link\.csdn\.net\/.*/.test(url)) {
419 | flag = true
420 | target_url = url.split("target=")[1]
421 | setTimeout(() => {
422 | let github = getElement('.loading-btn-github')
423 | flag = github && github.length !== 0 ? false : true
424 | getElement('.loading-topic span')[0].innerText = flag ? 'Blog-UI 正在跳转到: ' : '当前链接可以使用github加速请自行选择: '
425 | if (flag) {
426 | target_url = decodeURIComponent(target_url) // 编码
427 | setTimeout(() => {
428 | window.location.href = target_url;
429 | }, 500)
430 | }
431 | }, 500)
432 | }
433 | if (/https:\/\/link\.juejin\.cn\/.*/.test(url) || /https:\/\/link\.zhihu\.com\/.*/.test(url)) {
434 | target_url = url.split("target=")[1]
435 | // setTimeout(() => { getElement('.content .title')[0].innerText = 'Blog-UI 正在跳转到: ' })
436 | initDialog('body', "Blog-UI 正在跳转")
437 | target_url = decodeURIComponent(target_url) // 编码
438 | setTimeout(() => {
439 | window.location.href = target_url;
440 | }, 500)
441 | }
442 | }
443 |
444 | function addEvent(className, eventType, callback) {
445 | let dom = getElement(className)[0]
446 | dom.addEventListener(eventType, callback)
447 | }
448 |
449 | // 设置缓存更改 配置文件
450 | function generalCetch() {
451 | let parentConfig = BLOGUICONFIG[CURRENTPAGES][ISH5 ? 'h5' : 'pc']
452 | if (parentConfig.length !== 0) {
453 | // 设置缓存中的内容 并更新 源配置文件
454 | parentConfig.forEach((item) => {
455 | item.children.forEach((childrenItem, index, arr) => {
456 | // 如果没有for 就证明不需要缓存
457 | if (!childrenItem.for) {
458 | return
459 | }
460 | if (GM_listValues().includes(childrenItem.for)) {
461 | arr[index].checked = GM_getValue(childrenItem.for)
462 | } else {
463 | GM_setValue(childrenItem.for, childrenItem.checked)
464 | }
465 | })
466 | })
467 | addMain(parentConfig, BLOGUICONFIG[CURRENTPAGES].webType) // 生成虚拟节点
468 | }
469 | }
470 |
471 | // 生成虚拟节点
472 | function addMain(config, type) {
473 |
474 | let parentDom = getElement('.blog-ui-setting')[0]
475 | let parentVDom = render({
476 | tag: 'div',
477 | prop: { class: "blog-ui-csdn" },
478 | children: [
479 | {
480 | tag: 'div',
481 | prop: { class: "blog-ui-csdn-main" },
482 | }
483 | ]
484 | })
485 |
486 | parentDom.appendChild(parentVDom)
487 | let itemDom = getElement('.blog-ui-csdn-main')[0]
488 |
489 | config.forEach((configItem, index) => {
490 | let vDom = render({
491 | tag: 'div',
492 | prop: { class: "blog-ui-item" },
493 | children: [
494 | {
495 | tag: 'div',
496 | prop: { class: "blog-ui-config-title" },
497 | children: configItem.title
498 | },
499 | {
500 | tag: 'div',
501 | prop: { class: "blog-ui-config-center", parentIndex: index },
502 | children: actionDom(configItem.children, type)
503 | }
504 | ]
505 | })
506 | itemDom.appendChild(vDom)
507 | })
508 | }
509 |
510 | // 操作区
511 | function actionDom(configItem, type) {
512 | let actionDom = []
513 | for (let i = 0; i < configItem.length; i++) {
514 | let checkObj = null
515 | if (configItem[i].type === 'checked') {
516 | checkObj = checkBox(configItem[i], type)
517 | } else if (configItem[i].type === 'button') {
518 | checkObj = buttonBox(configItem[i])
519 | } else if (configItem[i].type === 'radio') {
520 | checkObj = radioBox(configItem[i])
521 | }
522 | actionDom.push(checkObj)
523 |
524 | }
525 | return actionDom
526 | }
527 |
528 |
529 | // 生成多选框
530 | function checkBox(item, type) {
531 | let checkObj = {
532 | tag: "input",
533 | prop: {
534 | "type": "checkbox",
535 | "id": item.for,
536 | "domId": item.domId,
537 | "index": item.index,
538 | "event": item.getEvent,
539 | "on": {
540 | change: (e) => {
541 | var target = e.target,
542 | targetTag = target.tagName;
543 | if (targetTag === "INPUT") {
544 | if (GM_listValues().includes(target.id)) {
545 | GM_setValue(target.id, target.checked)
546 | }
547 | var event = target.getAttribute('event')
548 | event != 'undefined' ? eval(`${event}(${target.checked}, '${target.attributes.domId.value}')`) : setDomEvent(target, type)
549 | }
550 | }
551 | }
552 | }
553 | }
554 |
555 | if (item.checked) {
556 | checkObj.prop.checked = true
557 | }
558 |
559 | let currentDom = {
560 | tag: 'div',
561 | prop: {
562 | "class": "setting-item"
563 | },
564 | children: [
565 | checkObj,
566 | {
567 | tag: "label",
568 | prop: {
569 | "class": "form-check-label",
570 | "for": item.for,
571 | "domId": item.domId
572 | },
573 | children: item.label
574 | }
575 | ]
576 | }
577 | return currentDom
578 | }
579 |
580 | // 生成按钮
581 | function buttonBox(item) {
582 | return {
583 | tag: "button",
584 | prop: {
585 | class: item.class,
586 | "on": {
587 | click: (e) => {
588 | var target = e.target,
589 | targetTag = target.tagName;
590 | if (targetTag == 'BUTTON') {
591 | eval(`${item['getEvent']}`)
592 | }
593 | }
594 | }
595 | },
596 | children: item.label
597 | }
598 | }
599 |
600 | // 生成单选
601 | function radioBox(item) {
602 | let radio = {
603 | tag: "input",
604 | prop: {
605 | 'type': item.type,
606 | 'name': 'radio',
607 | "id": item.for,
608 | "on": {
609 | change: (e) => {
610 | var target = e.target,
611 | targetTag = target.tagName;
612 |
613 | if (targetTag == 'INPUT') {
614 | eval(`${item['getEvent']}()`)
615 | }
616 | }
617 | }
618 | }
619 | }
620 |
621 | if (item.checked) {
622 | radio.prop.checked = true
623 | }
624 |
625 | let radioVdom = {
626 | tag: 'div',
627 | prop: {
628 | class: 'radio-item'
629 | },
630 | children: [
631 | radio,
632 | {
633 | tag: 'span',
634 | prop: { class: 'radio-label' },
635 | children: item.label
636 | }
637 | ]
638 | }
639 | return radioVdom
640 | }
641 |
642 | // 初始化当前页面配置
643 | function clearCache(plat, key) {
644 | let config = eval(`${plat}[${key}]`)
645 | config[ISH5 ? 'h5' : 'pc'].forEach(item => {
646 | item.children.forEach(detailItem => {
647 | if (detailItem.for && GM_listValues().includes(detailItem.for)) {
648 | GM_deleteValue(detailItem.for)
649 | }
650 | })
651 | })
652 | location.reload();
653 | }
654 |
655 | // 添加主页面
656 | function domHtml(urlObject) {
657 | let DomHtml =
658 | `
659 |
660 |
661 |
664 |
665 |
666 |
667 |
668 |
Blog-UI 设置界面
669 |
${urlObject.title}
670 |
671 |
672 |
673 |
674 | `
675 | let app = document.createElement('div')
676 | app.setAttribute('id', 'blogUiApp')
677 | document.querySelectorAll('body')[0].appendChild(app)
678 | app.innerHTML = DomHtml
679 | }
680 |
681 | // 获取元素
682 | function getElement(className) {
683 | let domList = document.querySelectorAll(className)
684 | if (!domList || domList.length === 0) {
685 | return ''
686 | } else {
687 | return domList
688 | }
689 | }
690 |
691 | // 初始化一个弹用于消息提示
692 | function initDialog(parentDom, title) {
693 | let oldDialog = getElement('.dialog-dom')[0]
694 | if (oldDialog) {
695 | oldDialog.remove()
696 | }
697 | let dialogVDom = document.createElement('div')
698 | dialogVDom.setAttribute('class', 'dialog-dom')
699 | dialogVDom.innerText = title
700 | setTimeout(() => {
701 | dialogVDom.setAttribute('style', 'opacity: 1; transition: all 1s;')
702 | }, 0)
703 | let parentVDom = getElement(parentDom)[0]
704 | parentVDom.appendChild(dialogVDom)
705 |
706 | setTimeout(() => {
707 | dialogVDom.setAttribute('style', 'opacity: 0; transition: all 1s;')
708 | }, 2000)
709 | }
710 |
711 | // 设置隐藏显示
712 | function displayDom(domNode, type) {
713 | if (!domNode) {
714 | return
715 | }
716 | // 对于一些动态加载的节点 如果没有查到就加入 一个错误队列中 每1000毫秒查找一次
717 | let dom = getElement(domNode)
718 | let errorList = []
719 | if (dom && dom.length > 0) {
720 | dom.forEach(item => {
721 | item.style['display'] = type ? 'block' : 'none'
722 | })
723 | } else {
724 | errorList.push({
725 | domNode,
726 | type
727 | })
728 | }
729 |
730 | if (errorList.length !== 0) {
731 | let i = 0
732 | let interval = setInterval(() => {
733 | if (i <= 5) {
734 | errorList.forEach(item => {
735 | let errorDom = getElement(domNode)
736 | if (errorDom && errorDom.length > 0) {
737 | errorDom.forEach(item => {
738 | item.style['display'] = type ? 'block' : 'none'
739 | })
740 | }
741 | })
742 | i++
743 | } else {
744 | clearInterval(interval)
745 | }
746 | }, 3000)
747 | }
748 | }
749 |
750 | // 输出
751 | function log(message, type = 'log') {
752 | console[type](message)
753 | }
754 |
755 | // 创建dom 元素
756 | function render(Vnode) {
757 | let { tag, prop, children } = Vnode
758 | let el = document.createElement(tag)
759 | Object.keys(prop).forEach(item => {
760 | el.setAttribute(item, prop[item]);
761 | if (item === 'on') {
762 | let eventObject = prop[item]
763 | Object.keys(eventObject).forEach(eventItem => {
764 | el.addEventListener(eventItem, (e) => eventObject[eventItem](e))
765 | })
766 | }
767 | })
768 |
769 | if (children instanceof Array) {
770 | children.forEach((item) => {
771 | el.appendChild(render(item));
772 | });
773 | } else {
774 | el.textContent = children
775 | }
776 | return el
777 | }
778 |
779 | // 设置点击事件 在这里需要进行分发
780 | function setDomEvent(e, type) {
781 | let checkedFlag = e.checked
782 | let domId = e.attributes.domid.value
783 | switch (type) {
784 | case 'CSDN': CSDNEvent(domId, checkedFlag)
785 | case 'JUEJIN': JUEJINEvent(domId, checkedFlag)
786 | case 'SiFou': SiFouEvent(domId, checkedFlag)
787 | case 'ZhiHu': ZhiHuEvent(domId, checkedFlag)
788 | }
789 | }
790 |
791 | // 添加外部样式
792 | function addCss(className, query) {
793 | let dom = getElement(className)[0]
794 | Object.keys(query).forEach(item => {
795 | dom.style[item] = query[item]
796 | })
797 | }
798 |
799 | // 添加其他内容
800 | function appendDom() {
801 | let html =
802 | `
803 |
858 | `
859 | let parentDom = getElement('.blog-ui-csdn')[0]
860 | let createDom = document.createElement('div')
861 | createDom.innerHTML = html
862 | parentDom.appendChild(createDom)
863 | }
864 |
865 | function initMainEvent() {
866 |
867 |
868 | addEvent('#blog-ui-main', 'click', (e) => {
869 | console.log(123)
870 | addCss('#blog-main', { display: 'inherit' })
871 | if (getElement('.bscroll-vertical-scrollbar').length !== 0) {
872 | getElement('.bscroll-vertical-scrollbar')[0].remove()
873 | }
874 | getElement('.blog-ui-csdn')[0].style.transform = 'translateX(0px) translateY(0px) translateZ(1px)'
875 | })
876 |
877 |
878 | // 设置鼠标移入svg 显示主菜单
879 | addEvent('#blog-ui-main', 'mouseenter', (e) => {
880 | console.log(0)
881 | addCss('#blog-main', { display: 'inherit' })
882 | if (getElement('.bscroll-vertical-scrollbar').length !== 0) {
883 | getElement('.bscroll-vertical-scrollbar')[0].remove()
884 | }
885 | getElement('.blog-ui-csdn')[0].style.transform = 'translateX(0px) translateY(0px) translateZ(1px)'
886 | })
887 |
888 | addEvent('#blog-main', 'mouseleave', () => {
889 | addCss('#blog-main', { display: 'none' })
890 | })
891 |
892 | var screen_width = document.body.offsetWidth;
893 | var screen_height = window.innerHeight;
894 |
895 | let father = getElement('#blogUiApp')[0]
896 |
897 | if (GM_getValue('x')) {
898 | father.style.top = GM_getValue('y')
899 | father.style.left = GM_getValue('x')
900 | }
901 |
902 | addEvent('#blog-ui-main', 'mousedown', (e) => {
903 | var x = e.pageX - father.offsetLeft
904 | var y = e.pageY - father.offsetTop
905 | function move(e) {
906 | let Py = e.pageY - y
907 | let Px = e.pageX - x
908 | father.style.top = Py + 'px'
909 | father.style.left = Px + 'px'
910 |
911 | if (Py < 20) {
912 | father.style.top = 20 + 'px'
913 | } else if (Py > (screen_height - 50)) {
914 | father.style.top = screen_height - 50 + 'px'
915 | }
916 |
917 | if (Px < 5) {
918 | father.style.left = 5 + 'px'
919 | } else if (Px > (screen_width - 50)) {
920 | father.style.left = screen_width - 50 + 'px'
921 | getElement('#blog-ui-main')[0].style.reight = '5px'
922 | }
923 |
924 | GM_setValue('x', father.style.left)
925 | GM_setValue('y', father.style.top)
926 | }
927 | document.addEventListener('mousemove', move)
928 | document.addEventListener('mouseup', function () {
929 | document.removeEventListener('mousemove', move)
930 | })
931 | })
932 |
933 | addEvent('#blog-ui-main', 'touchstart', (e) => {
934 | var x = e.changedTouches[0].pageX - father.offsetLeft
935 | var y = e.changedTouches[0].pageY - father.offsetTop
936 | function move(e) {
937 | let Py = e.changedTouches[0].pageY - y
938 | let Px = e.changedTouches[0].pageX - x
939 | father.style.top = Py + 'px'
940 | father.style.left = Px + 'px'
941 |
942 | if (Py < 20) {
943 | father.style.top = 20 + 'px'
944 | } else if (Py > (screen_height - 50)) {
945 | father.style.top = screen_height - 50 + 'px'
946 | }
947 |
948 | if (Px < 5) {
949 | father.style.left = 5 + 'px'
950 | } else if (Px > (screen_width - 50)) {
951 | father.style.left = screen_width - 50 + 'px'
952 | getElement('#blog-ui-main')[0].style.reight = '5px'
953 | }
954 |
955 | GM_setValue('x', father.style.left)
956 | GM_setValue('y', father.style.top)
957 | }
958 |
959 | document.addEventListener('touchmove', move)
960 | document.addEventListener('touchend', function () {
961 | document.removeEventListener('touchmove', move)
962 | })
963 | })
964 | }
965 |
966 | // ----------- CSDN 专区 ----------
967 | function csdnDirectory(checkedFlag, domId) {
968 | CSDNEvent(domId, checkedFlag)
969 | if (checkedFlag && domId) {
970 | csdnSetMenuHeight(flag = true)
971 | }
972 | }
973 |
974 | function csdnSetMenuHeight(flag = false) {
975 | setTimeout(() => {
976 | let asidedirectory = getElement('#asidedirectory')[0]
977 | if (asidedirectory) {
978 | let blog_container_aside = Array.from(getElement('.blog_container_aside')[0].children)
979 | let height = 0
980 | blog_container_aside.forEach((item) => {
981 | height += item.offsetHeight
982 | })
983 | height = height - asidedirectory.offsetHeight
984 | GM_setValue('CSDNMenuHeight', height)
985 | let CSDNMenuHeight = GM_getValue("CSDNMenuHeight")
986 | csdnScrollMenu(asidedirectory, CSDNMenuHeight)
987 | window.onscroll = (e) => {
988 | csdnScrollMenu(asidedirectory, CSDNMenuHeight)
989 | }
990 |
991 | }
992 | }, 1000)
993 | }
994 |
995 | function csdnScrollMenu(asidedirectory, CSDNMenuHeight) {
996 | let scrollTop = document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop
997 | if (scrollTop > CSDNMenuHeight) {
998 | asidedirectory.classList.add('default-menu')
999 | } else {
1000 | asidedirectory.classList.remove('default-menu')
1001 | }
1002 | }
1003 |
1004 | function csdnRadioP() {
1005 | GM_setValue('CsdnRadioC', false)
1006 | GM_setValue('CsdnRadioP', true)
1007 |
1008 | getElement('.main_father')[0].style = `height: 100%; width: 97vw; justify-content: unset;`
1009 | getElement('.container')[0].style = `display: flex;width: 97vw;`
1010 | }
1011 |
1012 | function csdnRadioC() {
1013 | GM_setValue('CsdnRadioP', false)
1014 | GM_setValue('CsdnRadioC', true)
1015 |
1016 | getElement('.main_father')[0].style = `height: 100%; width: 97vw; justify-content: center;`
1017 | getElement('.container')[0].style = `display: flex;`
1018 | }
1019 |
1020 |
1021 | function CSDNIsH5OrPC(id) {
1022 | // h5 移动端端时候的主元素ID
1023 | let dom = getElement(id)
1024 | if (dom && dom.length > 0) {
1025 | return true
1026 | } else {
1027 | return false
1028 | }
1029 | }
1030 |
1031 | // csdn 点击操作区部分触发的事件
1032 | function CSDNEvent(domId, checked) {
1033 | displayDom(domId, checked);
1034 | (!ISH5 && CURRENTPAGES == 2) ? setAside() : '' // 点击之后进行判断是不是没有右侧的侧边栏了
1035 | window.onscroll = null
1036 | csdnSetMenuHeight()
1037 | }
1038 |
1039 | // -------- csdn 通用 ---------
1040 | // 处理顶部
1041 | function removeTopbar(checked) {
1042 | setTimeout(() => {
1043 | // 处理左侧
1044 | getElement('.toolbar-menus li').forEach(item => {
1045 | let dataType = item.getAttribute('title')
1046 | if (['高价值源码课程分享', '简单高效优惠的云服务', '程序员的如意兵器', '找到志同道合的伙伴', '系统学习·问答·比赛', '开源代码托管', '让你的灵感立即落地'].includes(dataType)) {
1047 | item.style.display = checked ? 'inline-block' : 'none'
1048 | }
1049 | })
1050 |
1051 | // 判断是否登录
1052 | let loginDom = getElement('.toolbar-btn-loginfun')
1053 | // 已经登录
1054 | if (!loginDom) {
1055 | return
1056 | }
1057 |
1058 | // 删除顶部右侧
1059 | ['.toolbar-btn-vip', '.toolbar-btn-collect', '.toolbar-dynamic-box', '.toolbar-mp-menubox', '.toolbar-btn-write', '.toolbar-advert', '.toolbar-btn-mp', '.toolbar-btn-msg'].forEach(item => {
1060 | displayDom(item, checked)
1061 | })
1062 | }, 500)
1063 | }
1064 |
1065 | function whiteBack(checked) {
1066 | if (checked) {
1067 | getElement('body')[0].classList.add('bodyWhite')
1068 | } else {
1069 | getElement('body')[0].classList.remove('bodyWhite')
1070 | }
1071 | }
1072 |
1073 | // 优化开始
1074 | function CSDNOoptimiz(key) {
1075 | if (!ISH5) {
1076 | let removeDom = ['#recommendNps', '.template-box', '.blog-footer-bottom', '#csdn-copyright-footer']
1077 | // 删除可以直接通类名进行获取的元素
1078 | removeDom.forEach(item => {
1079 | displayDom(item, false)
1080 | })
1081 | }
1082 |
1083 | // getElement('.passport-login-container')[0].style.display = 'none'
1084 |
1085 |
1086 | // 点击登录注册按钮进行展示登录页面
1087 | let loginShow = ['.toolbar-btn-login', '.unlogin-comment-bt']
1088 | loginShow.forEach(item => {
1089 | let loginDom = getElement(item)
1090 | loginDom && loginDom.length != 0 && loginDom[0].addEventListener('click', () => {
1091 | setTimeout(() => { getElement('.passport-login-container')[0].style.display = 'block' }, 500)
1092 | })
1093 | })
1094 |
1095 | if (key === 2) {
1096 | // 解除点击全选
1097 | let hljdButton = getElement(".hljs-button")
1098 | if (hljdButton && hljdButton.length !== 0) {
1099 | hljdButton.forEach(item => {
1100 | item.setAttribute('data-title', '免登录复制')
1101 | item.addEventListener('click', (event) => {
1102 | const parentPreBlock = event.target.closest("pre");
1103 | let code = parentPreBlock.querySelectorAll('code')[0]
1104 | navigator.clipboard.writeText(code.innerText)
1105 | item.setAttribute('data-title', '复制成功')
1106 | setTimeout(() => { item.setAttribute('data-title', '免登录复制') }, 3000)
1107 | })
1108 | })
1109 | }
1110 |
1111 | // 复制
1112 | getElement('#content_views')[0].oncopy = function(event) {
1113 | const selection = document.getSelection()
1114 | event.clipboardData.setData("text/plain", selection.toString())
1115 | event.preventDefault()
1116 | }
1117 |
1118 | // 展开code 折叠
1119 | document.querySelectorAll('.hide-preCode-bt').forEach(item => { item.click() })
1120 | ISH5 ? csdnDeatilH5() : csdnDeatilPc()
1121 | }
1122 | }
1123 |
1124 | // -----------详情页面处理方法------
1125 | // 判断右侧 的 侧边栏是不是全都有display:none 如果有就进行全屏显示
1126 | function setAside() {
1127 | let blog_container_aside = getElement('.blog_container_aside')[0]
1128 | setTimeout(() => {
1129 | let domList = []
1130 | getElement('.blog_container_aside .aside-box').forEach(item => {
1131 | domList.push(item.style.display)
1132 | })
1133 |
1134 | if (domList.filter(item => {
1135 | return item == 'block'
1136 | }).length == 0) {
1137 | asideWidth = '0px'
1138 | } else {
1139 | asideWidth = '300px'
1140 | }
1141 | blog_container_aside.style.width = asideWidth
1142 | })
1143 | }
1144 |
1145 | // 处理左侧悬浮
1146 | function removeSideToolbar(checked) {
1147 | setTimeout(() => {
1148 | // 删除侧边悬浮
1149 | getElement('.csdn-side-toolbar')[0].style = ''
1150 | getElement('.csdn-side-toolbar .option-box').forEach(item => {
1151 | let dataType = item.getAttribute('data-type')
1152 | if (['search', 'guide', 'cs'].includes(dataType)) {
1153 | item.style.display = checked ? 'flex' : 'none'
1154 | }
1155 | if (['show', 'hide'].includes(dataType)) {
1156 | item.remove()
1157 | }
1158 | })
1159 |
1160 | displayDom('.sidetool-writeguide-box', false)
1161 | displayDom('.btn-sidetool-writeguide', false)
1162 | displayDom('.btn-side-chatdoc-contentbox', false)
1163 | getElement('.tip-box')[0].remove()
1164 | }, 1000)
1165 | }
1166 |
1167 | // operate 底部操作是否固定
1168 | function operate(checked) {
1169 | let operateDom = getElement('#operate')
1170 | if (operateDom && operateDom.length !== 0) {
1171 | setTimeout(() => {
1172 | operateDom[0].style.bottom = '0px'
1173 | operateDom[0].style.position = checked ? 'fixed' : 'inherit'
1174 | })
1175 | }
1176 | }
1177 |
1178 | // 详情页面处理H5
1179 | function csdnDeatilH5() {
1180 | // let loginDom = getElement('.passport-login-container')
1181 | let recommendList = getElement('.container-fluid')
1182 | recommendList.forEach(item => {
1183 | item.addEventListener('click', (e) => {
1184 | e.stopPropagation()
1185 | window.open(e.currentTarget.attributes['data-url'].nodeValue)
1186 | })
1187 | })
1188 |
1189 | let readall_box = getElement('.readall_box')
1190 | if (readall_box) {
1191 | readall_box[0].remove()
1192 | getElement('.article_content')[0].style.height = 'inherit'
1193 | }
1194 | }
1195 |
1196 | // 详情页面处理PC
1197 | function csdnDeatilPc() {
1198 | // (!ISH5 && CURRENTPAGES == 2) ? setAside() : '' // 点击之后进行判断是不是没有右侧的侧边栏了
1199 |
1200 | let mainDom = getElement('.main_father')[0]
1201 | mainDom.classList.remove('justify-content-center')
1202 | addCss('main', {
1203 | "flex": "1",
1204 | "margin-right": "10px"
1205 | })
1206 |
1207 | // 设置右侧边栏
1208 | let blog_container_aside = getElement('.blog_container_aside')[0]
1209 | var observe = new MutationObserver((list) => {
1210 | blog_container_aside.style['position'] = 'relative'
1211 | blog_container_aside.style['left'] = '0'
1212 | blog_container_aside.style['width'] = asideWidth
1213 | })
1214 | observe.observe(blog_container_aside, { attributes: true });
1215 |
1216 | // 设置底部关注一栏
1217 | let toolbar = getElement('.left-toolbox')[0]
1218 | toolbar.classList.add('observeToolbar')
1219 |
1220 | let observeToolbar = new MutationObserver((list) => {
1221 | list.forEach(item => {
1222 | item.target.classList.add('observeToolbar')
1223 | observeToolbar.disconnect();
1224 | })
1225 | })
1226 | observeToolbar.observe(toolbar, { attributes: true })
1227 |
1228 | // 去除剪贴板劫持
1229 | csdn.copyright.init("", "", "");
1230 |
1231 | // 删除原始的右侧
1232 | let rightDom = getElement('.recommend-right')
1233 | rightDom && rightDom[0].remove()
1234 |
1235 | // 关注博主才能查看
1236 | let focusUP = getElement('.hide-article-box')
1237 | if (focusUP && focusUP.length !== 0) {
1238 | focusUP[0].remove()
1239 | getElement('#article_content')[0].style.height = 'inherit'
1240 | }
1241 | setTimeout(() => {
1242 | setAside() // 判断右侧是否有悬浮
1243 | }, 1000)
1244 | }
1245 |
1246 | // ------处理搜索列表---------
1247 | // 列表页是否平铺展示
1248 | function blogNav(checked) {
1249 |
1250 | if (checked) {
1251 | getElement('.home_wrap')[0].style.width = '95vw'
1252 | getElement('.blog-content')[0].style.width = '75vw'
1253 | } else {
1254 | getElement('.home_wrap')[0].style.width = '70vw'
1255 | getElement('.blog-content')[0].style.width = '50vw'
1256 | }
1257 | }
1258 |
1259 | function soPc(checked) {
1260 | setTimeout(() => {
1261 | let mainDom = getElement('.clearfix')[0]
1262 | checked ? mainDom.classList.remove('main') : mainDom.setAttribute('class', 'main clearfix')
1263 | }, 100)
1264 | }
1265 |
1266 | // ------- 掘金专区 ---------
1267 | function JUEJINEvent(domId, checked) {
1268 | displayDom(domId, checked);
1269 | }
1270 |
1271 | function juejinRadioC() {
1272 | GM_setValue('JuejinRadioC', true)
1273 | GM_setValue('JuejinRadioP', false)
1274 | setTimeout(() => {
1275 | let dom = getElement('.main-container')[0]
1276 | dom.setAttribute('style', `max-width: ${1200}px`)
1277 | let main = getElement('.main-area')[0]
1278 | main.style.width = '890px'
1279 | }, 100)
1280 | }
1281 |
1282 | function juejinRadioP() {
1283 | GM_setValue('JuejinRadioP', true)
1284 | GM_setValue('JuejinRadioC', false)
1285 | // window.onload = () => {
1286 | setTimeout(() => {
1287 | let dom = getElement('.main-container')[0]
1288 | dom.setAttribute('style', `max-width: ${1140}px`)
1289 | let main = getElement('.main-area')[0]
1290 | main.style.width = '820px'
1291 | })
1292 | // }
1293 | }
1294 |
1295 | function delayFunction(time, domStr) {
1296 | let delay = new Promise((resolve, reject) => {
1297 | let startTime = new Date().valueOf()
1298 | let endTime = startTime + time * 1000
1299 | let inter = setInterval(() => {
1300 | let dom = getElement(domStr)
1301 | if (new Date().valueOf() < endTime && (dom && dom.length !== 0)) {
1302 | clearInterval(inter)
1303 | resolve(dom[0])
1304 | } else if (new Date().valueOf() > endTime) {
1305 | clearInterval(inter)
1306 | reject()
1307 | }
1308 | }, 100);
1309 | })
1310 | return delay
1311 | }
1312 |
1313 |
1314 | // 相关搜索
1315 | function JuejinRelated(checked) {
1316 | delayFunction(3, '.related-entry-sidebar-block').then(res => {
1317 | if (!checked) {
1318 | res.style.top = '-1000px'
1319 | res.style.position = 'absolute'
1320 | } else {
1321 | res.style.top = ''
1322 | res.style.position = 'relative'
1323 | }
1324 | }).catch((error) => {
1325 | console.log('DOM 元素未找到')
1326 | })
1327 | }
1328 |
1329 | // 目录
1330 | function JuejinGetMenu(checked) {
1331 | if (checked) {
1332 | displayDom('.article-catalog', true)
1333 | delayFunction(3, '.sidebar').then(res => {
1334 | var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1335 | let offsetHeight = res.offsetHeight
1336 | let dom = getElement('.sticky-block-box')[0]
1337 | if (scroll + offsetHeight > offsetHeight) {
1338 | dom.style.position = 'fixed'
1339 | } else {
1340 | dom.style.position = 'initial'
1341 | }
1342 |
1343 | window.onscroll = (e) => {
1344 | let scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
1345 | let offsetHeight = res.offsetHeight
1346 | let dom = getElement('.sticky-block-box')[0]
1347 |
1348 | if (scroll > offsetHeight) {
1349 | dom.style.position = 'fixed'
1350 | } else {
1351 | dom.style.position = 'initial'
1352 | }
1353 | }
1354 | })
1355 | } else {
1356 | displayDom('.article-catalog', false)
1357 | }
1358 | }
1359 |
1360 | function JuejinOptimiz() {
1361 |
1362 | document.oncopy = event => event.clipboardData.setData('text', window.getSelection(0).toString());
1363 |
1364 | setTimeout(() => { getElement('.article-suspended-panel .tooltip .panel-btn')[0].remove() }, 500)
1365 |
1366 | // 没有登陆的时候 顶部的处理
1367 | let noLoginDisplay = ['.creator-item', '.vip-entry']
1368 | let isLogin = getElement('.login-button')[0]
1369 | noLoginDisplay.forEach(item => {
1370 | if (isLogin) {
1371 | getElement(item)[0].style.display = 'none'
1372 | }
1373 | })
1374 |
1375 | displayDom('.sidebar-bd-entry', false)
1376 | displayDom('.banner', false)
1377 | }
1378 |
1379 | // 掘金顶部数据处理
1380 | function JuejinTop(checked) {
1381 | let topList = getElement('.phone-hide .nav-item')
1382 | topList.forEach((item, index) => {
1383 | if (index != 0) {
1384 | if (item.getAttribute('tag') == 'li') {
1385 | item.style.display = checked ? 'flex' : 'none'
1386 | } else {
1387 | item.style.display = checked ? 'block' : 'none'
1388 | }
1389 | }
1390 | })
1391 | }
1392 |
1393 | // 思否点击处理事件
1394 | function SiFouEvent(domId, checked) {
1395 | displayDom(domId, checked);
1396 | }
1397 |
1398 | // 删除顶部
1399 | function removeSifouTopbar(checked) {
1400 | getElement('.navbar-nav')[0].style.display = checked ? 'flex' : 'none'
1401 | }
1402 |
1403 | function SiFouRadioC() {
1404 | GM_setValue('SiFouRadioC', true)
1405 | GM_setValue('SiFouRadioP', false)
1406 | let DQDom = getElement('#question-wrap')[0] || getElement('.article-content')[0]
1407 | DQDom.style = `max-width: auto`
1408 | }
1409 |
1410 | function SiFouRadioP() {
1411 | GM_setValue('SiFouRadioC', false)
1412 | GM_setValue('SiFouRadioP', true)
1413 | let DQDom = getElement('#question-wrap')[0] || getElement('.article-content')[0]
1414 | DQDom.style = `max-width: 90%;`
1415 | }
1416 |
1417 | function similarRead(checked) {
1418 | setTimeout(() => {
1419 | getElement('#comment-area')[0].parentElement.nextElementSibling.style.display = checked ? 'block' : 'none'
1420 | // console.log(getElement('#comment-area'))
1421 | }, 500)
1422 | }
1423 |
1424 | function similarPro(checked) {
1425 | setTimeout(() => {
1426 | getElement('#answer-question')[0].nextElementSibling.style.display = checked ? 'block' : 'none'
1427 | }, 500)
1428 | }
1429 |
1430 | function getOnileUser() {
1431 | setTimeout(() => {
1432 | let parentDom = getElement('.blog-ui-csdn-main')[0]
1433 | let script1 = document.createElement('script')
1434 | let script2 = document.createElement('script')
1435 | script1.setAttribute('id', '_wauwd4')
1436 | script1.innerHTML = 'var _wau = _wau || []; _wau.push(["dynamic", "g24ioigmiv", "wd4", "c4302bffffff", "small"]);'
1437 | script2.setAttribute('async', true)
1438 | script2.setAttribute('src', '//waust.at/d.js')
1439 | parentDom.appendChild(script1)
1440 | parentDom.appendChild(script2)
1441 | }, 2000)
1442 | }
1443 |
1444 |
1445 | // 知乎专区
1446 | function ZhiHuEvent(domId, checked) {
1447 | displayDom(domId, checked);
1448 |
1449 | }
1450 |
1451 | function ZhihuOptimiz() {
1452 | setTimeout(() => {
1453 | let loginDom = getElement('.Modal-wrapper')
1454 | if (loginDom) {
1455 | let button = getElement('.Modal-closeButton')[0]
1456 | button.click()
1457 | }
1458 | }, 1000)
1459 | displayDom('.Banner-link', false)
1460 |
1461 | setInterval(() => {
1462 | displayDom('.css-1ynzxqw', false)
1463 | displayDom('.css-1hwwfws', false)
1464 | displayDom('.Banner-link', false)
1465 | }, 3000)
1466 |
1467 | displayDom('.AppBanner', false)
1468 |
1469 | let dateCreate = document.createElement('div')
1470 | let parentDom = getElement('.QuestionHeader .QuestionHeader-main')[0]
1471 | // let time = document.getAttribute('itemprop', 'dateCreated')
1472 | let time = document.querySelector('meta[itemprop="dateCreated"]')
1473 | if(time) {
1474 | // debugger
1475 | let content = time.getAttribute('content')
1476 | let insertTime = new Date(content).toLocaleString()
1477 | dateCreate.innerHTML = '提问时间:' + insertTime.replaceAll('/', '-')
1478 | dateCreate.setAttribute('class', 'ContentItem-time')
1479 | parentDom.appendChild(dateCreate)
1480 | }
1481 |
1482 | }
1483 |
1484 | function ZhiHuRadioP() {
1485 | GM_setValue('ZhiHuC', false)
1486 | GM_setValue('ZhiHuP', true)
1487 | setTimeout(() => {
1488 | ['.ContentItem-time', '.Post-Header', '.Post-RichTextContainer', '.Post-topicsAndReviewer', 'div[data-za-detail-view-path-module=CommentList]', '.Post-topicsAndReviewer+div'].forEach(item => {
1489 | getElement(item)[0].setAttribute('style', 'width: 1200px')
1490 | })
1491 | getElement('.Post-SideActions')[0].setAttribute('style', 'right:calc(50vw - 795px)')
1492 | }, 100)
1493 | }
1494 |
1495 | function ZhiHuRadioC() {
1496 | GM_setValue('ZhiHuC', true)
1497 | GM_setValue('ZhiHuP', false)
1498 | setTimeout(() => {
1499 | ['.ContentItem-time', '.Post-Header', '.Post-RichTextContainer', '.Post-topicsAndReviewer', 'div[data-za-detail-view-path-module=CommentList]', '.Post-topicsAndReviewer+div'].forEach(item => {
1500 | getElement(item)[0].setAttribute('style', 'width: 690px')
1501 | })
1502 | getElement('.Post-SideActions')[0].setAttribute('style', 'right:calc(50vw - 495px)')
1503 |
1504 | }, 100)
1505 |
1506 | }
1507 | // -------- 主函数 -------------
1508 | function mainInit() {
1509 | // 获取url地址 判断是那个网站
1510 | let urlObject = initUrl()
1511 | jumpLink()
1512 |
1513 | if (!urlObject) {
1514 | return
1515 | }
1516 |
1517 | // 不同平台是不是H5
1518 | switch (urlObject.platform) {
1519 | case 'CSDN': ISH5 = CSDNIsH5OrPC('.csdn-toolbar'); break;
1520 | // case 'ZhiHu': ISH5 = ZhihuIsH5OrPC('')
1521 | default: ISH5 = false
1522 | }
1523 | log(CURRENTPAGES)
1524 | if (CURRENTPAGES && !BLOGUICONFIG[CURRENTPAGES][ISH5 ? 'h5' : 'pc']) {
1525 | log(`当前页面无优化,如果需要请联系作者`)
1526 | return
1527 | }
1528 | // 生成主窗口
1529 | domHtml(urlObject)
1530 | generalCetch()
1531 |
1532 |
1533 | // 进行刷新这之后的设置
1534 | BLOGUICONFIG[CURRENTPAGES][ISH5 ? 'h5' : 'pc'].forEach(configItem => {
1535 | configItem.children.forEach(item => {
1536 |
1537 | // 如果有事件那就去单独执行 否则就是 默认隐藏
1538 | if (item.getEvent && !['button'].includes(item.type)) {
1539 | if (item.type === 'radio' && !item.checked) {
1540 | return
1541 | } else {
1542 | eval(`${item.getEvent}(${item.checked}, '${item.domId}')`)
1543 | }
1544 | } else {
1545 | setTimeout(() => {
1546 | displayDom(item.domId, item.checked)
1547 | }, 500)
1548 | }
1549 | })
1550 | })
1551 |
1552 | switch (urlObject.platform) {
1553 | case 'CSDN': CSDNOoptimiz(urlObject.key); break;
1554 | case 'Juejin': JuejinOptimiz(urlObject.key); break;
1555 | case 'ZhiHu': ZhihuOptimiz(urlObject.key); break;
1556 | }
1557 | // 生成附加信息
1558 | appendDom()
1559 | initMainEvent()
1560 | // getOnileUser()
1561 |
1562 | log(`当前正在优化 ${urlObject.title} 使用愉快!有问题请联系作者`)
1563 |
1564 | }
1565 |
1566 | log(`脚本启动成功, 欢迎使用${TITLE} 版本:${VERSION}`)
1567 |
1568 | // window.onload = () => {
1569 | mainInit()
1570 |
1571 | })();
1572 |
--------------------------------------------------------------------------------