Skip to content

Commit

Permalink
✨新增设置项:点击点赞按钮时下载作品
Browse files Browse the repository at this point in the history
  • Loading branch information
xuejianxianzun committed Aug 25, 2022
1 parent ef4ae6b commit d17ad7c
Show file tree
Hide file tree
Showing 9 changed files with 147 additions and 20 deletions.
12 changes: 3 additions & 9 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@

TODO:日语文本需要加粗显示关键字,但是我不懂日语。


给作品点赞(喜欢)时自动下载它

优化抓取画师的 API

## 13.5.0 2022/08/25
Expand All @@ -19,14 +16,11 @@ TODO:日语文本需要加粗显示关键字,但是我不懂日语。

例如,在画师主页使用下载器的“收藏本页面的所有作品”功能,或是“下载之后收藏作品”功能,这些操作也会收藏作品,但不是用户点击收藏按钮触发的,所以也就不会触发此功能的自动下载效果。

-----------------
### 新增设置项:点击点赞按钮时下载作品

现在下载器处理的收藏按钮有以下几类:
- 作品页面内的收藏按钮(心形)
- 下载器的快速收藏按钮(☆)
- 各种作品列表里的收藏按钮
你可以在“更多”选项卡的“下载”分类中找到它。默认未启用。

但是此功能目前对小说的支持不太好。对于小说作品来说,只有在小说页面内点击收藏按钮时可以触发自动下载。在小说列表里点击收藏按钮是不会触发自动下载的
启用之后,当你在作品页面里点赞时,下载器会自动下载这个作品

### 新增命名标记:{upload_date}

Expand Down
83 changes: 77 additions & 6 deletions dist/js/content.js
Original file line number Diff line number Diff line change
Expand Up @@ -10342,7 +10342,7 @@ class WorkToolBar {
this.executionCB();
}
}
/**注册回调函数
/**注册回调函数
*
* 当 WorkToolBar 模块获取到了所有需要的元素时,会执行回调函数,并把以下元素作为参数传入:
*
Expand Down Expand Up @@ -10478,11 +10478,12 @@ __webpack_require__.r(__webpack_exports__);
/* harmony import */ var _download_SaveWorkMeta__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(/*! ./download/SaveWorkMeta */ "./src/ts/download/SaveWorkMeta.ts");
/* harmony import */ var _download_ShowStatusOnTitle__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(/*! ./download/ShowStatusOnTitle */ "./src/ts/download/ShowStatusOnTitle.ts");
/* harmony import */ var _download_ShowRemainingDownloadOnTitle__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(/*! ./download/ShowRemainingDownloadOnTitle */ "./src/ts/download/ShowRemainingDownloadOnTitle.ts");
/* harmony import */ var _ShowWhatIsNew__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./ShowWhatIsNew */ "./src/ts/ShowWhatIsNew.ts");
/* harmony import */ var _ShowHowToUse__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./ShowHowToUse */ "./src/ts/ShowHowToUse.ts");
/* harmony import */ var _CheckUnsupportBrowser__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./CheckUnsupportBrowser */ "./src/ts/CheckUnsupportBrowser.ts");
/* harmony import */ var _ShowNotification__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./ShowNotification */ "./src/ts/ShowNotification.ts");
/* harmony import */ var _HiddenBrowserDownloadBar__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./HiddenBrowserDownloadBar */ "./src/ts/HiddenBrowserDownloadBar.ts");
/* harmony import */ var _download_DownloadOnClickLike__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(/*! ./download/DownloadOnClickLike */ "./src/ts/download/DownloadOnClickLike.ts");
/* harmony import */ var _ShowWhatIsNew__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(/*! ./ShowWhatIsNew */ "./src/ts/ShowWhatIsNew.ts");
/* harmony import */ var _ShowHowToUse__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(/*! ./ShowHowToUse */ "./src/ts/ShowHowToUse.ts");
/* harmony import */ var _CheckUnsupportBrowser__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(/*! ./CheckUnsupportBrowser */ "./src/ts/CheckUnsupportBrowser.ts");
/* harmony import */ var _ShowNotification__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(/*! ./ShowNotification */ "./src/ts/ShowNotification.ts");
/* harmony import */ var _HiddenBrowserDownloadBar__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(/*! ./HiddenBrowserDownloadBar */ "./src/ts/HiddenBrowserDownloadBar.ts");
/*
* project: Powerful Pixiv Downloader
* author: xuejianxianzun; 雪见仙尊
Expand Down Expand Up @@ -10521,6 +10522,7 @@ __webpack_require__.r(__webpack_exports__);






// import './CheckNewVersion'
Expand Down Expand Up @@ -16560,6 +16562,75 @@ const downloadOnClickBookmark = new DownloadOnClickBookmark();



/***/ }),

/***/ "./src/ts/download/DownloadOnClickLike.ts":
/*!************************************************!*\
!*** ./src/ts/download/DownloadOnClickLike.ts ***!
\************************************************/
/*! no exports provided */
/***/ (function(module, __webpack_exports__, __webpack_require__) {

"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony import */ var _config_Colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../config/Colors */ "./src/ts/config/Colors.ts");
/* harmony import */ var _EVT__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../EVT */ "./src/ts/EVT.ts");
/* harmony import */ var _Lang__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../Lang */ "./src/ts/Lang.ts");
/* harmony import */ var _PageType__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../PageType */ "./src/ts/PageType.ts");
/* harmony import */ var _setting_Settings__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../setting/Settings */ "./src/ts/setting/Settings.ts");
/* harmony import */ var _store_States__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../store/States */ "./src/ts/store/States.ts");
/* harmony import */ var _Toast__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../Toast */ "./src/ts/Toast.ts");
/* harmony import */ var _Tools__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../Tools */ "./src/ts/Tools.ts");
/* harmony import */ var _WorkToolBar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../WorkToolBar */ "./src/ts/WorkToolBar.ts");









// 在作品页面里点赞时,下载这个作品
class DownloadOnClickLike {
constructor() {
this.bindEvents();
}
bindEvents() {
_WorkToolBar__WEBPACK_IMPORTED_MODULE_8__["workToolBar"].register((toolbar, pixivBMKDiv, likeBtn) => {
likeBtn.addEventListener('click', () => {
if (_PageType__WEBPACK_IMPORTED_MODULE_3__["pageType"].type === _PageType__WEBPACK_IMPORTED_MODULE_3__["pageType"].list.Artwork) {
this.send(_Tools__WEBPACK_IMPORTED_MODULE_7__["Tools"].getIllustId(window.location.href));
}
if (_PageType__WEBPACK_IMPORTED_MODULE_3__["pageType"].type === _PageType__WEBPACK_IMPORTED_MODULE_3__["pageType"].list.Novel) {
this.send(_Tools__WEBPACK_IMPORTED_MODULE_7__["Tools"].getNovelId(window.location.href), 'novels');
}
});
});
}
/**发送作品的 id 和类型,抓取并下载这个作品
*
* @type 默认值是 'illusts'
*/
send(id, type = 'illusts') {
if (_setting_Settings__WEBPACK_IMPORTED_MODULE_4__["settings"].downloadOnClickLike) {
_store_States__WEBPACK_IMPORTED_MODULE_5__["states"].quickCrawl = true;
_EVT__WEBPACK_IMPORTED_MODULE_1__["EVT"].fire('crawlIdList', [
{
id,
type,
},
]);
_Toast__WEBPACK_IMPORTED_MODULE_6__["toast"].show(_Lang__WEBPACK_IMPORTED_MODULE_2__["lang"].transl('_已发送下载请求'), {
bgColor: _config_Colors__WEBPACK_IMPORTED_MODULE_0__["Colors"].bgBlue,
position: 'mouse',
});
}
}
}
new DownloadOnClickLike();


/***/ }),

/***/ "./src/ts/download/DownloadRecord.ts":
Expand Down
2 changes: 1 addition & 1 deletion dist/js/content.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Powerful Pixiv Downloader",
"version": "13.4.0",
"version": "13.5.0",
"manifest_version": 2,
"description": "强大的 Pixiv 批量下载器。Powerful Pixiv batch downloader. 強力な Pixiv ダウンローダー。",
"icons": {
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "powerful-pixiv-downloader",
"version": "13.4.0",
"version": "13.5.0",
"description": "强大的 Pixiv 批量下载器。Powerful Pixiv batch downloader. 強力な Pixiv ダウンローダー。",
"repository": "https://github.com/xuejianxianzun/PixivBatchDownloader",
"author": "xuejianxianzun",
Expand Down
2 changes: 1 addition & 1 deletion src/manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Powerful Pixiv Downloader",
"version": "13.4.0",
"version": "13.5.0",
"manifest_version": 2,
"description": "强大的 Pixiv 批量下载器。Powerful Pixiv batch downloader. 強力な Pixiv ダウンローダー。",
"icons": {
Expand Down
2 changes: 1 addition & 1 deletion src/ts/WorkToolBar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ class WorkToolBar {

private callbackList: Function[] = []

/**注册回调函数
/**注册回调函数
*
* 当 WorkToolBar 模块获取到了所有需要的元素时,会执行回调函数,并把以下元素作为参数传入:
*
Expand Down
1 change: 1 addition & 0 deletions src/ts/content.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ import './download/MergeNovel'
import './download/SaveWorkMeta'
import './download/ShowStatusOnTitle'
import './download/ShowRemainingDownloadOnTitle'
import './download/DownloadOnClickLike'
// import './CheckNewVersion'
import './ShowWhatIsNew'
import './ShowHowToUse'
Expand Down
61 changes: 61 additions & 0 deletions src/ts/download/DownloadOnClickLike.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
import { Colors } from '../config/Colors'
import { EVT } from '../EVT'
import { lang } from '../Lang'
import { pageType } from '../PageType'
import { settings } from '../setting/Settings'
import { states } from '../store/States'
import { WorkTypeString } from '../store/StoreType'
import { toast } from '../Toast'
import { Tools } from '../Tools'
import { workToolBar } from '../WorkToolBar'

// 在作品页面里点赞时,下载这个作品
class DownloadOnClickLike {
constructor() {
this.bindEvents()
}

private bindEvents() {
workToolBar.register(
(
toolbar: HTMLDivElement,
pixivBMKDiv: HTMLDivElement,
likeBtn: HTMLButtonElement
) => {
likeBtn.addEventListener('click', () => {
if (pageType.type === pageType.list.Artwork) {
this.send(Tools.getIllustId(window.location.href))
}

if (pageType.type === pageType.list.Novel) {
this.send(Tools.getNovelId(window.location.href), 'novels')
}
})
}
)
}

/**发送作品的 id 和类型,抓取并下载这个作品
*
* @type 默认值是 'illusts'
*/
private send(id: string, type: WorkTypeString = 'illusts') {
if (settings.downloadOnClickLike) {
states.quickCrawl = true

EVT.fire('crawlIdList', [
{
id,
type,
},
])

toast.show(lang.transl('_已发送下载请求'), {
bgColor: Colors.bgBlue,
position: 'mouse',
})
}
}
}

new DownloadOnClickLike()

0 comments on commit d17ad7c

Please sign in to comment.