-
Notifications
You must be signed in to change notification settings - Fork 338
希望更详细一点的 Workers & Fetcher 配置描述 #12
Comments
首先感谢能花费那么多时间来踩坑
别的步骤看起来都没有什么问题,如果还有什么问题可以把 log level 开到 debug 将错误日志附上来 |
core 的 dev.json 是按照默认的: "cron": [
{
"driveId": 1,
"interval": 36000000,
"doFull": true
}
] 文件我都是手动 rclone move 到谷歌盘,不知道这个自动任务是怎么用 ... docker loglevel 一直是 debug ,日志写了一大堆 233 ,core 的日志: {"log":"\u001b[36m[2020-05-02T16:44:23.094] [DEBUG] Module: Cache - \u001b[39m[api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.095020795Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.095] [DEBUG] Module: User - \u001b[39mChecking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5\n","stream":"stdout","time":"2020-05-02T08:44:23.153415678Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.099] [DEBUG] Module: Cache - \u001b[39m[api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.153443417Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.099] [DEBUG] Module: User - \u001b[39mChecking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5\n","stream":"stdout","time":"2020-05-02T08:44:23.153447963Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.136] [DEBUG] Module: Cache - \u001b[39m[api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.15345172Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.136] [DEBUG] Module: User - \u001b[39mChecking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5\n","stream":"stdout","time":"2020-05-02T08:44:23.153455416Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.541] [DEBUG] Module: Cache - \u001b[39m[api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.541665679Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.541] [DEBUG] Module: User - \u001b[39mChecking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5\n","stream":"stdout","time":"2020-05-02T08:44:23.541793979Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.542] [DEBUG] Module: Cache - \u001b[39m[api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.543192844Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.543] [DEBUG] Module: User - \u001b[39mChecking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5\n","stream":"stdout","time":"2020-05-02T08:44:23.543218593Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.658] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/statistic/getData\n","stream":"stdout","time":"2020-05-02T08:44:23.65903812Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.659] [DEBUG] Module: Cache - \u001b[39m[api_statistic] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.659307678Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.661] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/metadata/getList/1/20\n","stream":"stdout","time":"2020-05-02T08:44:23.661275559Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.661] [DEBUG] API: Metadata - \u001b[39mPage 1, size 20\n","stream":"stdout","time":"2020-05-02T08:44:23.66155576Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.661] [DEBUG] Module: Cache - \u001b[39m[api_metadata_list_1_20] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.661648199Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.665] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/auth/check\n","stream":"stdout","time":"2020-05-02T08:44:23.666047909Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.671] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/statistic/getData\n","stream":"stdout","time":"2020-05-02T08:44:23.671827449Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.671] [DEBUG] Module: Cache - \u001b[39m[api_statistic] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:23.67198189Z"}
{"log":"\u001b[36m[2020-05-02T16:44:23.677] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/auth/check\n","stream":"stdout","time":"2020-05-02T08:44:23.677995665Z"}
{"log":"\u001b[36m[2020-05-02T16:44:30.051] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/metadata/getMetaList/series/1/50\n","stream":"stdout","time":"2020-05-02T08:44:30.051452161Z"}
{"log":"\u001b[36m[2020-05-02T16:44:30.051] [DEBUG] API: Metadata - \u001b[39mType series, page 1, size 50\n","stream":"stdout","time":"2020-05-02T08:44:30.051640628Z"}
{"log":"\u001b[36m[2020-05-02T16:44:30.051] [DEBUG] Module: Cache - \u001b[39m[api_meta_list_series_1_50] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:30.05172411Z"}
{"log":"\u001b[36m[2020-05-02T16:44:32.825] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/metadata/getMetaList/star/1/50\n","stream":"stdout","time":"2020-05-02T08:44:32.825485242Z"}
{"log":"\u001b[36m[2020-05-02T16:44:32.825] [DEBUG] API: Metadata - \u001b[39mType star, page 1, size 50\n","stream":"stdout","time":"2020-05-02T08:44:32.825633323Z"}
{"log":"\u001b[36m[2020-05-02T16:44:32.825] [DEBUG] Module: Cache - \u001b[39m[api_meta_list_stars_1_50] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:32.825786876Z"}
{"log":"\u001b[36m[2020-05-02T16:44:33.723] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/metadata/getMetaList/tag/1/50\n","stream":"stdout","time":"2020-05-02T08:44:33.723378189Z"}
{"log":"\u001b[36m[2020-05-02T16:44:33.723] [DEBUG] API: Metadata - \u001b[39mType tag, page 1, size 50\n","stream":"stdout","time":"2020-05-02T08:44:33.723482056Z"}
{"log":"\u001b[36m[2020-05-02T16:44:33.723] [DEBUG] Module: Cache - \u001b[39m[api_meta_list_tags_1_50] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:33.72349004Z"}
{"log":"\u001b[36m[2020-05-02T16:44:34.403] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/bookmark/getList\n","stream":"stdout","time":"2020-05-02T08:44:34.40339052Z"}
{"log":"\u001b[36m[2020-05-02T16:44:35.017] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/metadata/getList/1/20\n","stream":"stdout","time":"2020-05-02T08:44:35.01784188Z"}
{"log":"\u001b[36m[2020-05-02T16:44:35.017] [DEBUG] API: Metadata - \u001b[39mPage 1, size 20\n","stream":"stdout","time":"2020-05-02T08:44:35.017994494Z"}
{"log":"\u001b[36m[2020-05-02T16:44:40.257] [DEBUG] API: Main - \u001b[39m[UID: 1] GET /api/statistic/getData\n","stream":"stdout","time":"2020-05-02T08:44:40.258310593Z"}
{"log":"\u001b[36m[2020-05-02T16:44:40.258] [DEBUG] Module: Cache - \u001b[39m[api_statistic] Cache missed, creating one\n","stream":"stdout","time":"2020-05-02T08:44:40.258436294Z"}
{"log":"\u001b[36m[2020-05-02T16:44:58.041] [DEBUG] Module: Cache - \u001b[39mExpired cache api_statistic cleared\n","stream":"stdout","time":"2020-05-02T08:44:58.042538495Z"}
{"log":"\u001b[36m[2020-05-02T16:45:58.043] [DEBUG] Module: Cache - \u001b[39mExpired cache api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5 cleared\n","stream":"stdout","time":"2020-05-02T08:45:58.047838368Z"}
{"log":"\u001b[36m[2020-05-02T16:45:58.047] [DEBUG] Module: Cache - \u001b[39mExpired cache api_metadata_list_1_20 cleared\n","stream":"stdout","time":"2020-05-02T08:45:58.048441297Z"}
{"log":"\u001b[36m[2020-05-02T16:45:58.048] [DEBUG] Module: Cache - \u001b[39mExpired cache api_meta_list_series_1_50 cleared\n","stream":"stdout","time":"2020-05-02T08:45:58.048505121Z"}
{"log":"\u001b[36m[2020-05-02T16:45:58.048] [DEBUG] Module: Cache - \u001b[39mExpired cache api_meta_list_stars_1_50 cleared\n","stream":"stdout","time":"2020-05-02T08:45:58.048747348Z"}
{"log":"\u001b[36m[2020-05-02T16:45:58.048] [DEBUG] Module: Cache - \u001b[39mExpired cache api_meta_list_tags_1_50 cleared\n","stream":"stdout","time":"2020-05-02T08:45:58.048795901Z"} 说起看日志我想起来 fetcher 一直在不停的 restart ,我删掉了 mt rss 的源只留了 OneJAV 的源,毕竟 mt 账号看起来... fetcher 配置这块是这样写的,其他地方没有修改: "remote": [
{
"driver": "OneJAV",
"url": "https://onejav.com/new/"
},{
"driver": "OneJAV",
"url": "https://onejav.com/popular/"
},{
"driver": "OneJAV",
"url": "https://onejav.com/random/"
}
] qBittorrent WebUI 正常,自动抓取 OneJAV 好像失败了,我在 8585 端口的面板上手动添加 .torrent 地址下载。附上 fetcher 的日志: {"log":" ^\n","stream":"stderr","time":"2020-05-02T09:33:52.742082913Z"}
{"log":"\n","stream":"stderr","time":"2020-05-02T09:33:52.742087279Z"}
{"log":"Error: Configuration property \"system.logLevel\" is not defined\n","stream":"stderr","time":"2020-05-02T09:33:52.742091512Z"}
{"log":" at Config.get (/usr/app/node_modules/config/lib/config.js:182:11)\n","stream":"stderr","time":"2020-05-02T09:33:52.742096032Z"}
{"log":" at module.exports (/usr/app/src/module/logger.js:6:27)\n","stream":"stderr","time":"2020-05-02T09:33:52.742100539Z"}
{"log":" at Object.\u003canonymous\u003e (/usr/app/src/module/qbittorrent.js:2:35)\n","stream":"stderr","time":"2020-05-02T09:33:52.742104866Z"}
{"log":" at Module._compile (internal/modules/cjs/loader.js:1151:30)\n","stream":"stderr","time":"2020-05-02T09:33:52.742109839Z"}
{"log":" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)\n","stream":"stderr","time":"2020-05-02T09:33:52.74211435Z"}
{"log":" at Module.load (internal/modules/cjs/loader.js:1000:32)\n","stream":"stderr","time":"2020-05-02T09:33:52.74211899Z"}
{"log":" at Function.Module._load (internal/modules/cjs/loader.js:899:14)\n","stream":"stderr","time":"2020-05-02T09:33:52.742123395Z"}
{"log":" at Module.require (internal/modules/cjs/loader.js:1040:19)\n","stream":"stderr","time":"2020-05-02T09:33:52.742127799Z"}
{"log":" at require (internal/modules/cjs/helpers.js:72:18)\n","stream":"stderr","time":"2020-05-02T09:33:52.742132051Z"}
{"log":" at Object.\u003canonymous\u003e (/usr/app/src/handle/init.js:5:12)\n","stream":"stderr","time":"2020-05-02T09:33:52.742136205Z"}
{"log":"WARNING: NODE_ENV value of 'dev' did not match any deployment config file names.\n","stream":"stderr","time":"2020-05-02T09:34:54.2248761Z"}
{"log":"WARNING: See https://github.com/lorenwest/node-config/wiki/Strict-Mode\n","stream":"stderr","time":"2020-05-02T09:34:54.225272509Z"}
{"log":"WARNING: No configurations found in configuration directory:/usr/app/config/\n","stream":"stderr","time":"2020-05-02T09:34:54.225369699Z"}
{"log":"WARNING: To disable this warning set SUPPRESS_NO_CONFIG_WARNING in the environment.\n","stream":"stderr","time":"2020-05-02T09:34:54.225377256Z"}
{"log":"/usr/app/node_modules/config/lib/config.js:182\n","stream":"stderr","time":"2020-05-02T09:34:54.322909029Z"}
{"log":" throw new Error('Configuration property \"' + property + '\" is not defined');\n","stream":"stderr","time":"2020-05-02T09:34:54.322951291Z"}
{"log":" ^\n","stream":"stderr","time":"2020-05-02T09:34:54.322955051Z"}
{"log":"\n","stream":"stderr","time":"2020-05-02T09:34:54.322957721Z"}
{"log":"Error: Configuration property \"system.logLevel\" is not defined\n","stream":"stderr","time":"2020-05-02T09:34:54.322960108Z"}
{"log":" at Config.get (/usr/app/node_modules/config/lib/config.js:182:11)\n","stream":"stderr","time":"2020-05-02T09:34:54.32296269Z"}
{"log":" at module.exports (/usr/app/src/module/logger.js:6:27)\n","stream":"stderr","time":"2020-05-02T09:34:54.322965293Z"}
{"log":" at Object.\u003canonymous\u003e (/usr/app/src/module/qbittorrent.js:2:35)\n","stream":"stderr","time":"2020-05-02T09:34:54.322978267Z"}
{"log":" at Module._compile (internal/modules/cjs/loader.js:1151:30)\n","stream":"stderr","time":"2020-05-02T09:34:54.322981421Z"}
{"log":" at Object.Module._extensions..js (internal/modules/cjs/loader.js:1171:10)\n","stream":"stderr","time":"2020-05-02T09:34:54.322983868Z"}
{"log":" at Module.load (internal/modules/cjs/loader.js:1000:32)\n","stream":"stderr","time":"2020-05-02T09:34:54.322993614Z"}
{"log":" at Function.Module._load (internal/modules/cjs/loader.js:899:14)\n","stream":"stderr","time":"2020-05-02T09:34:54.322998876Z"}
{"log":" at Module.require (internal/modules/cjs/loader.js:1040:19)\n","stream":"stderr","time":"2020-05-02T09:34:54.323002249Z"}
{"log":" at require (internal/modules/cjs/helpers.js:72:18)\n","stream":"stderr","time":"2020-05-02T09:34:54.323004759Z"}
{"log":" at Object.\u003canonymous\u003e (/usr/app/src/handle/init.js:5:12)\n","stream":"stderr","time":"2020-05-02T09:34:54.32300726Z"} 日志很多都是重复的我就截取了重复的部分,应该没有遗漏什么 |
core的日志你截取的都是网站的访问日志而不是importer的日志,可以试试加上 grep Importer 试试,可以先关闭再启动并等待一分钟左右即可看到相关日志 然后fetcher不启动的原因看起来是找不到配置文件,可以检查一下是否已经改名成dev.json并在启动语句前加上 NODE_ENV=dev来让程序寻找到dev.json 关于定时任务的作用就是从Google Drive中读取视频信息并导入到core的数据库中 另外想问一句你上传到网盘的数据有没有经过fetcher处理.... (毕竟看你fetcher都没正常运行 |
啊,那原来是我没有 fetcher 处理就上传到网盘了(逃... fetcher 找不到那个可能是我按照教程复制 dev.json 文件的位置错了吗我看看,docker fetcher 的说明: cp config/dev.example.json dev.json 我试试在 config 文件夹创建 dev.json 不太熟悉 Docker,emmm... Importer 日志像这样,这是没连接上数据库🐎: root@msvultr2020:~/JAVClub_core# docker logs e928dcbda9fa | grep Importer
This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason:
Error: ER_BAD_DB_ERROR: Unknown database 'javclub'
at Handshake.Sequence._packetToError (/usr/app/node_modules/mysql/lib/protocol/sequences/Sequence.js:47:14)
at Handshake.ErrorPacket (/usr/app/node_modules/mysql/lib/protocol/sequences/Handshake.js:123:18)
at Protocol._parsePacket (/usr/app/node_modules/mysql/lib/protocol/Protocol.js:291:23)
at Parser._parsePacket (/usr/app/node_modules/mysql/lib/protocol/Parser.js:433:10)
at Parser.write (/usr/app/node_modules/mysql/lib/protocol/Parser.js:43:10)
at Protocol.write (/usr/app/node_modules/mysql/lib/protocol/Protocol.js:38:16)
at Socket.<anonymous> (/usr/app/node_modules/mysql/lib/Connection.js:88:28)
at Socket.<anonymous> (/usr/app/node_modules/mysql/lib/Connection.js:526:10)
at Socket.emit (events.js:321:20)
at Socket.EventEmitter.emit (domain.js:485:12)
--------------------
at Protocol._enqueue (/usr/app/node_modules/mysql/lib/protocol/Protocol.js:144:48)
at Protocol.handshake (/usr/app/node_modules/mysql/lib/protocol/Protocol.js:51:23)
at Connection.connect (/usr/app/node_modules/mysql/lib/Connection.js:116:18)
at /usr/app/node_modules/knex/lib/dialects/mysql/index.js:68:18
[2020-05-02T11:41:57.960] [DEBUG] Importer: Main - Config: [ { driveId: 1, interval: 36000000, doFull: true } ]
at new Promise (<anonymous>)
at Client_MySQL.acquireRawConnection (/usr/app/node_modules/knex/lib/dialects/mysql/index.js:63:12)
at create (/usr/app/node_modules/knex/lib/client.js:289:39)
at processTicksAndRejections (internal/process/task_queues.js:97:5) 我去试了下,好像还真是 dev.json 位置不对,教程把 dev.json 复制到 fetcher 根目录去了 233 现在 fetcher 日志: [2020-05-02T10:43:46.494] [DEBUG] Handle: Init - [Check torrent status] Starting job
[2020-05-02T10:43:46.494] [INFO] Module: Qbittorrent - Getting torrent list
[2020-05-02T10:43:46.494] [DEBUG] Module: Qbittorrent - GET /api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true
[2020-05-02T10:43:46.494] [DEBUG] Module: Qbittorrent - GET data: {
method: 'GET',
headers: { Cookie: 'SID=DbuXc2TO8HDajgFE2edemARvVJ48G7W8' }
}
[2020-05-02T10:43:46.499] [DEBUG] Module: Qbittorrent - POST response body Response {
size: 0,
timeout: 0,
[Symbol(Body internals)]: {
body: PassThrough {
_readableState: [ReadableState],
readable: true,
_events: [Object: null prototype],
_eventsCount: 2,
_maxListeners: undefined,
_writableState: [WritableState],
writable: false,
allowHalfOpen: true,
_transformState: [Object],
[Symbol(kCapture)]: false
},
disturbed: false,
error: null
},
[Symbol(Response internals)]: {
url: 'http://qbittorrent:8585/api/v2/torrents/createCategory',
status: 409,
statusText: 'Conflict',
headers: Headers { [Symbol(map)]: [Object: null prototype] },
counter: 0
}
}
[2020-05-02T10:43:46.499] [INFO] Pull: Init - [Download queue] Job finished, setting timer
[2020-05-02T10:43:46.500] [DEBUG] Module: Qbittorrent - GET response body []
[2020-05-02T10:43:46.500] [INFO] Handle: Init - [Check torrent status] Job finished, setting timer core 日志: [2020-05-02T18:13:11.480] [INFO] Stack - Stack created
[2020-05-02T18:13:11.500] [DEBUG] Importer: Main - Config: [ { driveId: 1, interval: 36000000, doFull: true } ]
[2020-05-02T18:13:11.500] [INFO] Stack - Creating Instance 1
[2020-05-02T18:13:11.502] [INFO] API: Main - JAVClub core is listening on port 3000!
[2020-05-02T18:13:11.604] [DEBUG] Stack - RowDataPacket {
id: 1,
name: '1',
driverType: 'gd',
driverData: '{"oAuth":{"client_id":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","client_secret":"xxxxxxxxxxxxxxxxxxxxx","redirect_uri":"urn:ietf:wg:oauth:2.0:oob","token":{"access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","refresh_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","scope":"https://www.googleapis.com/auth/drive","token_type":"Bearer","expiry_date":1583679345619}},"drive":{"driveId":"xxxxxxxxxxx"},"encryption":{"secret":"xxxxxxxxxxxxxx","server":"https://mv-gd.msx.workers.dev"}}',
isEnable: 1,
createTime: '1588363401',
updateTime: '1588363401'
}
[2020-05-02T18:13:11.606] [DEBUG] Driver[1]: Google Drive - Token expiry date 1583679345619
[2020-05-02T18:13:11.606] [INFO] Driver[1]: Google Drive - Refreshing access token
(node:1) [google-auth-library:DEP007] DeprecationWarning: The `refreshAccessToken` method has been deprecated, and will be removed in the 3.0 release of google-auth-library. Please use the `getRequestHeaders` method instead.
[2020-05-02T18:13:11.765] [INFO] Driver[1]: Google Drive - Got access token
[2020-05-02T18:13:11.766] [DEBUG] Driver[1]: Google Drive - {
access_token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
scope: 'https://www.googleapis.com/auth/drive',
token_type: 'Bearer',
expiry_date: 1588417990765,
refresh_token: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
[2020-05-02T18:13:11.766] [INFO] Importer: GD 1 - Got drive instance
[2020-05-02T18:13:11.774] [INFO] Importer: Main - [1] Ready in 32 seconds
[2020-05-02T18:13:43.777] [INFO] Importer: Main - [1] Starting first time import process
[2020-05-02T18:13:43.778] [INFO] Importer: GD 1 - Starting process of import, full = true
[2020-05-02T18:13:43.778] [INFO] Driver[1]: Google Drive - Getting full file list of keyword name='info.json'
[2020-05-02T18:13:43.779] [DEBUG] Driver[1]: Google Drive - Getting page 1
[2020-05-02T18:13:44.102] [INFO] Driver[1]: Google Drive - Got 0 files' metadatas
[2020-05-02T18:13:44.102] [INFO] Importer: GD 1 - Got info.json file list
[2020-05-02T18:13:44.102] [INFO] Importer: GD 1 - All Promise settled
[2020-05-02T18:13:44.102] [INFO] Importer: Main - [1] First time import process fininshed
[2020-05-02T18:13:44.102] [DEBUG] Importer: Main - [1] Cron set, 36000000ms
[2020-05-02T18:18:52.141] [DEBUG] Module: Cache - [api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5] Cache missed, creating one
[2020-05-02T18:18:52.142] [DEBUG] Module: User - Checking token sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5
[2020-05-02T18:18:52.166] [DEBUG] API: Main - [UID: 1] GET /api/auth/check
[2020-05-02T18:18:52.310] [DEBUG] API: Main - [UID: 1] GET /api/statistic/getData
[2020-05-02T18:18:52.311] [DEBUG] Module: Cache - [api_statistic] Cache missed, creating one
[2020-05-02T18:19:10.566] [DEBUG] Module: Cache - Expired cache api_statistic cleared
[2020-05-02T18:20:10.567] [DEBUG] Module: Cache - Expired cache api_checktoken_sjdkfgho9we84yt98w7yhtguierhbgu93oh578gwijhgnwo5 cleared 我觉得我需要等几天再看有没有数据了 |
数据的话你就等fetcher处理完第一个种子然后把sync目录里面的所有东西上传到网盘里就可以了 |
数据库的问题我已经检查了,那个找不到数据库应该是之前启动的时候没有先启动 lemp ,日志也记录了我没删。后来我清空日志重新编排了容器,core 日志中没有数据库的报错了。现在数据库是没问题的了,但 fetcher 对
不知道是否和我的容器网络桥接有关,此时我的 fetcher 和 qbittorrent 同时存在于 root@msvultr2020:~# docker network ls
NETWORK ID NAME DRIVER SCOPE
a5eb30cf6dee bridge bridge local
732bcdad4481 host host local
4f07216d6714 javclub_fetcher_default bridge local
e67609173e19 javclub_lemp_default bridge local
3a4e5788bcb4 none null local
root@msvultr2020:~# docker network inspect javclub_fetcher_default
[
{
"Name": "javclub_fetcher_default",
"Id": "4f07216d671467e46919eb16d5b21981e38afc0d8d070c7ea92ee6c7f7b80f4d",
"Created": "2020-05-01T11:51:27.505918288Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.18.0.0/16",
"Gateway": "172.18.0.1"
}
]
},
"Internal": false,
"Attachable": false,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"186de75ba4d8ad8be838c7abfa1635ffd870928ab25196ea9aec7b4f358c54f9": {
"Name": "fetcher",
"EndpointID": "aba7bd94f378ef481043ac75b2acede8b1109e50767aa448f7ef54b02959522f",
"MacAddress": "02:42:ac:12:00:03",
"IPv4Address": "172.18.0.3/16",
"IPv6Address": ""
},
"8829e3f2dcc97a77fd415a9fbe892ce25ca0b5302b4292754a026bae2607a769": {
"Name": "qbittorrent",
"EndpointID": "d6b9e07b5e440d4ad1f9a5636f8b57d61f9f52734b5a40febf90fc0b3e520df7",
"MacAddress": "02:42:ac:12:00:02",
"IPv4Address": "172.18.0.2/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {}
}
]
root@msvultr2020:~# docker network inspect javclub_lemp_default
[
{
"Name": "javclub_lemp_default",
"Id": "e67609173e191ed009190f3692c1eb9ec2377492c009fe3440fc709df97fed3a",
"Created": "2020-05-01T12:25:23.425133701Z",
"Scope": "local",
"Driver": "bridge",
"EnableIPv6": false,
"IPAM": {
"Driver": "default",
"Options": null,
"Config": [
{
"Subnet": "172.19.0.0/16",
"Gateway": "172.19.0.1"
}
]
},
"Internal": false,
"Attachable": true,
"Ingress": false,
"ConfigFrom": {
"Network": ""
},
"ConfigOnly": false,
"Containers": {
"0920253567cad31a1a4538b3f392813d2385daaf75b0c7af2596963e79895f4a": {
"Name": "javclub_lemp_php-fpm_1",
"EndpointID": "e3e28dbc001c1e2223374fdf24c034aed5ad944d350a0551c1e97dd914d91266",
"MacAddress": "02:42:ac:13:00:06",
"IPv4Address": "172.19.0.6/16",
"IPv6Address": ""
},
"186de75ba4d8ad8be838c7abfa1635ffd870928ab25196ea9aec7b4f358c54f9": {
"Name": "fetcher",
"EndpointID": "e66fdb9adcadc36b7d93b0a08b78403d6dd210c80a8658470a663c66692a19ba",
"MacAddress": "02:42:ac:13:00:02",
"IPv4Address": "172.19.0.2/16",
"IPv6Address": ""
},
"41556a6d0a3e53e37c0923f6089f42088e6892fb58f940f179641ba49b63cdef": {
"Name": "javclub_lemp_nginx_1",
"EndpointID": "abf62e1f5ffeb53363814fd7a9cb988eb01b715d2dfb63c0fd8b65bf7b9e8445",
"MacAddress": "02:42:ac:13:00:07",
"IPv4Address": "172.19.0.7/16",
"IPv6Address": ""
},
"607adedbb599b34c4c678a1e02bbd8efb051cd571d605c1a85d71205acfb9bfa": {
"Name": "javclub_lemp_redis_1",
"EndpointID": "a0d97fe555af900c1debcc51992b15fb5d3b9215b0b8fec2c9d3687282eddc86",
"MacAddress": "02:42:ac:13:00:08",
"IPv4Address": "172.19.0.8/16",
"IPv6Address": ""
},
"8829e3f2dcc97a77fd415a9fbe892ce25ca0b5302b4292754a026bae2607a769": {
"Name": "qbittorrent",
"EndpointID": "bd5dc1e32df48cb046d52ce9d726a616c406011e09fdc900cc643bab3c5eb1e2",
"MacAddress": "02:42:ac:13:00:04",
"IPv4Address": "172.19.0.4/16",
"IPv6Address": ""
},
"962e1c888897ac6bef0327203875820a2ab2e2e091ecc839a5146c28d338ae9a": {
"Name": "javclub_lemp_mysql_1",
"EndpointID": "9ae7b1f317bfabbe7b4afcfbaa534de54b6af7e9f51ae3d7a4ec614b68fca93f",
"MacAddress": "02:42:ac:13:00:05",
"IPv4Address": "172.19.0.5/16",
"IPv6Address": ""
},
"c45050da45070bebea7d089812db4ebef6290dd7f15642876fbd7e0902febe5d": {
"Name": "javclub_lemp_phpmyadmin_1",
"EndpointID": "eeeb39627228ebfcb1826d21c4a98f1a39084fa21f9a5e27c3b8ab22c37c013b",
"MacAddress": "02:42:ac:13:00:09",
"IPv4Address": "172.19.0.9/16",
"IPv6Address": ""
},
"e928dcbda9fad17296a33ba54c6c1a697a01631fd10a788765158c76cc0f6b50": {
"Name": "javclub_core_core_1",
"EndpointID": "6d1934faa8bf7677ac072f90768f7c116a277c3b820146b247d8470a1bad9ec8",
"MacAddress": "02:42:ac:13:00:03",
"IPv4Address": "172.19.0.3/16",
"IPv6Address": ""
}
},
"Options": {},
"Labels": {
"com.docker.compose.network": "default",
"com.docker.compose.project": "javclub_lemp",
"com.docker.compose.version": "1.25.4"
}
}
] 我尝试将 fetcher 和 qbittorrent 容器从
不知道是哪里的问题... |
因为没法判断是否已存在分类 JAVClub 所以每次都会尝试创建一个分类, 如果已存在就会返回 409, 这个不用在意 看日志的话应该是 qBittorrent 端的相应不符合预期, 可以检查一下 qBittorrent 里面是否存在 发现文档中漏了一个很重要的东西, 可以加上再试试 {
"driver": "RSS",
"type": "MT",
"url": "https://pt.m-team.cc/torrentrss.php?https=1&rows=30&cat410=1&isize=1&search=-&search_mode=1&linktype=dl&passkey=",
"interval": 300
}
|
因为 qBittorrent 还在快速迭代期, 所以 API 在疯狂变动, 为了避免麻烦这里钦定 如果使用 Docker 部署可以拉取最新的 docker-compose.yaml |
之前拉取的是 qbittorrent 是最新版本的。 root@msvultr2020:~# docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
linuxserver/qbittorrent latest c77db2e3af22 5 days ago 333MB
这个分类如果是个叫 JAVClub 的文件夹的话,那没有 nice! 换了版本现在看起来没什么问题了。fetcher 日志中只有 409 了。 |
好的,要是成功部署的话还请发个喜报(不是)让我知道这玩意儿能用hhhh |
会的 嘿嘿 (怎么会不能用呢 |
折腾了一天将全套系统部署完了,fetch 了 OneJAV 的几部影片到本地后成功 move 到 rclone 挂载的 Google Drive ,网页登陆也可以看到云端硬盘中的文件,可 WebUI 显示有一个硬盘但是没有视频。
不知道是因为我用的是云端共享硬盘还是因为配置错了 QAQ 。fetcher lemp core 全部使用 Docker 部署,以下是我的部分配置过程:
core
关于 core 中说要用到
client_id
client_secret
access_token
refresh_token
,但是我并不知道是在哪里用的... rclone 在服务器挂载硬盘时倒是有需要client_id
client_secret
,然后点链接授权之后返回了access_token
refresh_token
。之后本地挂载和文件 move 都正常。然后在数据库导入 drives 表数据时说明是这样的:
嗯,好的,我按照 rclone 挂载时的
client_id
client_secret
access_token
refresh_token
填好了,后面的driveId
我填的是https://drive.google.com/drive/folders/【id】
这里后面的文件夹 id 。然后
secret
我就不知道是什么了 QAQ 。我将部署 google drive workers 时要填的aes_password
填了进去。workers
workers 里面的 gd-config.js 中要填
aes_password
client_id
client_secret
refresh_token
,后三个我将 rclone 挂载的时候那几个对应client_id
client_secret
refresh_token
填进去了,aes_password
emmm... 不知道是啥,我就把access_token
填了进去,webpack 构建完后部署到 workers.dev 了。以上就是我认为可能出错的地方了,如果还有什么要补充的细节请提。霖大有时间的话救救孩子!蟹蟹了
我尝试将 AES 加密的密码填在 workers gd-config.js 的
aes_password
,修改 drivers 数据表中的【path_ase_secret】
为 AES 加密后的谷歌盘文件夹 id ,然后更新 core 容器编排,但是好像也不对 QAQThe text was updated successfully, but these errors were encountered: