From ebdafa62d21372c8d5fa982f339a37bd41003418 Mon Sep 17 00:00:00 2001 From: "yadong.zhang" Date: Wed, 12 Sep 2018 10:18:41 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E5=8D=9A=E5=AE=A2=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=AF=E6=8C=81cnblogs=202.=20?= =?UTF-8?q?=E5=8D=9A=E5=AE=A2=E8=BF=81=E7=A7=BB=E5=8A=9F=E8=83=BD=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=9B=BE=E7=89=87=E8=BD=AC=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +- .../blog/controller/RestApiController.java | 2 +- .../src/main/resources/application-dev.yml | 4 +- .../src/main/resources/application-prod.yml | 50 +++++++ .../src/main/resources/application-test.yml | 8 +- blog-admin/src/main/resources/application.yml | 2 +- blog-admin/src/main/resources/banner.txt | 32 ++--- .../assets/images/spider/uid/cnblogs.png | Bin 0 -> 42017 bytes .../main/resources/templates/remover/list.ftl | 63 ++++++-- .../zyd/blog/BlogAdminApplicationTests.java | 29 ++-- blog-core/pom.xml | 8 +- .../service/impl/RemoverServiceImpl.java | 46 ++++-- .../blog/business/util/ImageDownloadUtil.java | 134 ++++++++++++++++++ .../java/com/zyd/blog/plugin/QiniuApi.java | 4 +- .../zyd/blog/util/ImageDownloadUtilTest.java | 58 ++++++++ blog-spider/.gitignore | 3 +- .../com/zyd/blog/spider/model/Article.java | 15 +- .../com/zyd/blog/spider/model/BaseModel.java | 2 + .../zyd/blog/spider/model/CnblogModel.java | 32 +++++ blog-web/.gitignore | 3 +- .../java/com/zyd/blog/BlogWebApplication.java | 8 +- .../src/main/resources/application-dev.yml | 4 +- .../src/main/resources/application-test.yml | 8 +- blog-web/src/main/resources/banner.txt | 32 ++--- .../src/main/resources/static/js/zhyd.core.js | 38 ++--- blog-web/src/main/resources/static/js/zhyd.js | 105 ++++++++------ docs/db/dblog.sql | 8 +- pom.xml | 2 +- update.md | 9 ++ 29 files changed, 552 insertions(+), 167 deletions(-) create mode 100644 blog-admin/src/main/resources/application-prod.yml create mode 100644 blog-admin/src/main/resources/static/assets/images/spider/uid/cnblogs.png create mode 100644 blog-core/src/main/java/com/zyd/blog/business/util/ImageDownloadUtil.java create mode 100644 blog-core/src/test/java/com/zyd/blog/util/ImageDownloadUtilTest.java create mode 100644 blog-spider/src/main/java/com/zyd/blog/spider/model/CnblogModel.java diff --git a/README.md b/README.md index aa49bb5..b76e32b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - **DBlog** 是一款简洁美观、自适应的Java博客系统。使用springboot开发,前端使用Bootstrap。支持移动端自适应,配有完备的前台和后台管理功能。 + **OneBlog** 一个简洁美观、功能强大并且自适应的Java博客。使用springboot开发,前端使用Bootstrap。支持移动端自适应,配有完备的前台和后台管理功能。 ![JDK](https://img.shields.io/badge/JDK-1.8-green.svg) ![Maven](https://img.shields.io/badge/Maven-3.3.1-green.svg) @@ -17,7 +17,7 @@ # 重要声明 -1. 本项目配有相关[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis)。文档中包括**基本的项目说明**、**shiro标签使用**、**七牛云配置**和一些常见的**异常问题解决方案**。使用时碰到问题请**优先**查阅【[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis)】。因为现在好多朋友问的问题大部分都写在【[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis)】中了,希望各位朋友能自己翻阅下相关资料,高效提问,避免重复问题! +1. 本项目配有相关[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis) 【[新版文档](http://dblog-docs.zhyd.me)】。文档中包括**基本的项目说明**、**shiro标签使用**、**七牛云配置**和一些常见的**异常问题解决方案**。使用时碰到问题请**优先**查阅【[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis)】。因为现在好多朋友问的问题大部分都写在【[帮助文档](https://gitee.com/yadong.zhang/DBlog/wikis)】中了,希望各位朋友能自己翻阅下相关资料,高效提问,避免重复问题! 2. **提问题**前请优先阅读【[如何向开源社区提问题](https://github.com/seajs/seajs/issues/545)】&【[提问的智慧](http://www.dianbo.org/9238/stone/tiwendezhihui.htm)】 3. **提问题**时请优先选择[Gitee Issues](https://gitee.com/yadong.zhang/DBlog/issues)(方便问题追踪和一对一解决),其次[我的博客-留言板](https://www.zhyd.me/guestbook),再次[QQ群190886500](http://shang.qq.com/wpa/qunwpa?idkey=9f986e9b33b1de953e1ef9a96cdeec990affd0ac7855e00ff103514de2027b60)(QQ群消息较多,提问请注意节奏、时机),最次加我QQ好友直接提问(不推荐) 4. 本项目唯一官网:[https://www.zhyd.me](https://www.zhyd.me) @@ -28,7 +28,7 @@ ---- # 写在前面的话 -ps: 虽然我知道,大部分人都是来了**直接下载源代码**后就潇洒的离开,并且只有等到下次**突然想到**“我天~~我得去看看DBlog这烂项目更新新功能了吗”的时候才会重新来到这儿,即使你重新来过,我估计你也只有两个选择: +ps: 虽然我知道,大部分人都是来了**直接下载源代码**后就潇洒的离开,并且只有等到下次**突然想到**“我天~~我得去看看OneBlog这烂项目更新新功能了吗”的时候才会重新来到这儿,即使你重新来过,我估计你也只有两个选择: 发现更新代码了 --> 下载源码后重复上面的步骤 发现没更新代码 --> 直接关闭浏览器 @@ -39,7 +39,7 @@ ps: 虽然我知道,大部分人都是来了**直接下载源代码**后就潇 ---- -### 已经在用DBlog的网站 ( 排名按照留言先后顺序 ) +### 已经在用OneBlog的网站 ( 排名按照留言先后顺序 ) - [张亚东博客](https://www.zhyd.me) - [攻城狮不是猫博客](http://www.jsdblog.com) - [刘辉辉的博客](http://www.axxo.top) @@ -48,7 +48,7 @@ ps: 虽然我知道,大部分人都是来了**直接下载源代码**后就潇 - [大杂烩 | 好好网](https://www.haohaowang.top) - 更多待续... -烦请各位使用DBlog已经跑起来自己的博客的朋友,能留下你的网址(没别的意思,只是看看有多少人而已) - [点这儿](https://gitee.com/yadong.zhang/DBlog/issues/ILIAQ) +烦请各位使用OneBlog已经跑起来自己的博客的朋友,能留下你的网址(没别的意思,只是看看有多少人而已) - [点这儿](https://gitee.com/yadong.zhang/DBlog/issues/ILIAQ) diff --git a/blog-admin/src/main/java/com/zyd/blog/controller/RestApiController.java b/blog-admin/src/main/java/com/zyd/blog/controller/RestApiController.java index 2c67f73..09dadaf 100644 --- a/blog-admin/src/main/java/com/zyd/blog/controller/RestApiController.java +++ b/blog-admin/src/main/java/com/zyd/blog/controller/RestApiController.java @@ -81,7 +81,7 @@ public class RestApiController { Map resultMap = new HashMap<>(3); resultMap.put("success", 1); resultMap.put("message", "上传成功"); - resultMap.put("filename", config.getQiuniuBasePath() + filePath + "-pw"); + resultMap.put("filename", config.getQiuniuBasePath() + filePath); return resultMap; } diff --git a/blog-admin/src/main/resources/application-dev.yml b/blog-admin/src/main/resources/application-dev.yml index e59deeb..9dae50a 100644 --- a/blog-admin/src/main/resources/application-dev.yml +++ b/blog-admin/src/main/resources/application-dev.yml @@ -16,10 +16,10 @@ spring: # 指定SMTP server使用的协议,默认为: smtp protocol: smtp # 指定SMTP server host. - host: xxx.xxx.xxx + host: xxx port: 465 # 指定SMTP server的用户名. - username: xxx@xxx.xxx + username: xxx # 指定SMTP server登陆密码: password: xxx # 指定是否在启动时测试邮件服务器连接,默认为false diff --git a/blog-admin/src/main/resources/application-prod.yml b/blog-admin/src/main/resources/application-prod.yml new file mode 100644 index 0000000..e95546f --- /dev/null +++ b/blog-admin/src/main/resources/application-prod.yml @@ -0,0 +1,50 @@ +# Server settings +server: + tomcat: + basedir: /var/tmp/website-blog-admin +# SPRING PROFILES +spring: + datasource: + type: com.alibaba.druid.pool.DruidDataSource + driver-class-name: com.mysql.jdbc.Driver + url: jdbc:mysql://localhost:3306/dblog?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true + username: root + password: root + # 指定默认MimeMessage的编码,默认为: UTF-8 + mail: + default-encoding: UTF-8 + # 指定SMTP server使用的协议,默认为: smtp + protocol: smtp + # 指定SMTP server host. + host: xxx + port: 465 + # 指定SMTP server的用户名. + username: xxx + # 指定SMTP server登陆密码: + password: xxx + # 指定是否在启动时测试邮件服务器连接,默认为false + test-connection: false + properties: + mail.smtp.auth: true + # 腾讯企业邮箱 下两个配置必须!!! + mail.smtp.ssl.enable: true + mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory + mail.smtp.socketFactory.port: 465 + mail.smtp.starttls.enable: true + mail.smtp.starttls.required: true + mail.smtp.connectiontimeout: 50000 + mail.smtp.timeout: 30000 + mail.smtp.writetimeout: 50000 +# logging settings +logging: + path: /var/tmp/website-blog-admin +####################################自定义配置########################################## +app: + # 是否启用kaptcha验证码 + enableKaptcha: false + # shiro配置项 + shiro: + loginUrl: "/passport/login/" + successUrl: "/" + unauthorizedUrl: "/error/403" +####################################自定义配置########################################## \ No newline at end of file diff --git a/blog-admin/src/main/resources/application-test.yml b/blog-admin/src/main/resources/application-test.yml index b884c3e..e95546f 100644 --- a/blog-admin/src/main/resources/application-test.yml +++ b/blog-admin/src/main/resources/application-test.yml @@ -9,19 +9,19 @@ spring: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/dblog?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&useSSL=false&allowPublicKeyRetrieval=true username: root - password: ZhangYad0ng + password: root # 指定默认MimeMessage的编码,默认为: UTF-8 mail: default-encoding: UTF-8 # 指定SMTP server使用的协议,默认为: smtp protocol: smtp # 指定SMTP server host. - host: smtp.zhyd.me + host: xxx port: 465 # 指定SMTP server的用户名. - username: admin@zhyd.me + username: xxx # 指定SMTP server登陆密码: - password: qwer1234!@#$ + password: xxx # 指定是否在启动时测试邮件服务器连接,默认为false test-connection: false properties: diff --git a/blog-admin/src/main/resources/application.yml b/blog-admin/src/main/resources/application.yml index 9c2ba4d..2db66a5 100644 --- a/blog-admin/src/main/resources/application.yml +++ b/blog-admin/src/main/resources/application.yml @@ -81,7 +81,7 @@ spring: # 连接池中的最小空闲连接 min-idle: 0 # 连接超时时间(毫秒) - timeout: 0ms + timeout: 5000ms # 默认的数据过期时间,主要用于shiro权限管理 expire: 2592000 banner: diff --git a/blog-admin/src/main/resources/banner.txt b/blog-admin/src/main/resources/banner.txt index 0f671f9..c2c6be6 100644 --- a/blog-admin/src/main/resources/banner.txt +++ b/blog-admin/src/main/resources/banner.txt @@ -1,22 +1,18 @@ ${AnsiColor.BLUE} -====================================================================================================================================================== +==================================================================================================================================== - 欢迎使用 DBlog博客系统 - Powered By https://www.zhyd.me - 唯一官方开源地址(Github已不维护):https://gitee.com/yadong.zhang/DBlog - 唯一官方QQ群:190886500 + 欢迎使用 OneBlog 博客系统(原DBlog) - Powered By https://www.zhyd.me + 唯一官方开源地址(Github已不维护):https://gitee.com/yadong.zhang/DBlog + 唯一官方QQ群:190886500 - ;'*¨'`·- ., ‘ ,. - · - ., ' ,. ' , ·. ,.-·~·., ‘ ,.-·^*ª'` ·, - \`:·-,. , '` ·. ' ,·'´,.-, ,. -., `';,' / ';\ / ·'´,.-·-., `,'‚ .·´ ,·'´:¯'`·, '\‘ - '\:/ ;\:'`:·, '`·, ' \::\.'´ ;'\::::;:' ,·':\' ,' ,'::'\ / .'´\:::::::'\ '\ ° ,´ ,'\:::::::::\,.·\' - ; ;'::\;::::'; ;\ '\:'; ;:;:·'´,.·'´\::::'; ,' ;:::';' ,·' ,'::::\:;:-·-:'; ';\‚ / /:::\;·'´¯'`·;\:::\° - ; ,':::; `·:;; ,':'\' ,.·' ,.·:'´:::::::'\;·´ '; ,':::;' ;. ';:::;´ ,' ,':'\‚ ; ;:::;' '\;:·´ - ; ;:::; ,·' ,·':::; '·, ,.`' ·- :;:;·'´ ; ,':::;' ' '; ;::; ,'´ .'´\::';‚ '; ;::/ ,·´¯'; ° - ; ;:::;' ,.'´,·´:::::; ; ';:\:`*·, '`·, ° ,' ,'::;' '; ':;: ,.·´,.·´::::\;'° '; '·;' ,.·´, ;'\ - ':,·:;::-·´,.·´\:::::;´' ; ;:;:'-·'´ ,.·':\ ; ';_:,.-·´';\‘ \·, `*´,.·'´::::::;·´ \'·. `'´,.·:´'; ;::\' - \::;. -·´:::::;\;·´ ,·', ,. -~:*'´\:::::'\‘ ', _,.-·'´:\:\‘ \\:¯::\:::::::;:·´ '\::\¯::::::::'; ;::'; ‘ - \;'\::::::::;·´' \:\`'´\:::::::::'\;:·'´ \¨:::::::::::\'; `\:::::\;::·'´ ° `·:\:::;:·´';.·´\::;' - `\;::-·´ '\;\:::\;: -~*´‘ '\;::_;:-·'´‘ ¯ ¯ \::::\;'‚ - ' '¨ ‘ '\:·´' + _____ ______ _ + | _ | | ___ \ | | + | | | | _ __ ___ | |_/ / | | ___ __ _ + | | | | | '_ \ / _ \ | ___ \ | | / _ \ / _` | + \ \_/ / | | | | | __/ | |_/ / | | | (_) | | (_| | + \___/ |_| |_| \___| \____/ |_| \___/ \__, | + __/ | + |___/ - 当前SpringBoot版本 :: ${spring-boot.version} -====================================================================================================================================================== \ No newline at end of file + 当前SpringBoot版本 :: ${spring-boot.version} +==================================================================================================================================== \ No newline at end of file diff --git a/blog-admin/src/main/resources/static/assets/images/spider/uid/cnblogs.png b/blog-admin/src/main/resources/static/assets/images/spider/uid/cnblogs.png new file mode 100644 index 0000000000000000000000000000000000000000..e162286867d807bc7e3e9691b1d69bcd098915b5 GIT binary patch literal 42017 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 hA1?l1sO_DrYc;NpE})_w#ec@bYe1i
- +
- + +
+ +
+
+
+ +
+ 勾选时默认将文章中的图片转存到七牛云中(需提前配置七牛云) +
+
+
+
@@ -44,16 +50,17 @@
- 各平台“用户ID”获取方式: + 获取方式: 慕课网 | CSDN | - ITeye + ITeye | + 博客园
- +
@@ -71,7 +78,7 @@
- 只在需要登陆时才需要设置。Cookie获取方式: 以CSDN为例 + 需要登陆时设置。Cookie获取方式: 以CSDN为例
@@ -167,7 +174,7 @@
- +
@@ -222,7 +229,7 @@