Git Product home page Git Product logo

Comments (11)

LynMoe avatar LynMoe commented on May 21, 2024

首先感谢能花费那么多时间来踩坑

  • 没有视频显示
    在 core 的配置中有没有设定定时任务呢?(就是 importer 中 cron那项

  • secret 和 aes_password
    这里可能的确有点误导,这两个是同一个东西,后续会考虑统一说法

别的步骤看起来都没有什么问题,如果还有什么问题可以把 log level 开到 debug 将错误日志附上来

from core.

monsterxcn avatar monsterxcn commented on May 21, 2024

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"}

日志很多都是重复的我就截取了重复的部分,应该没有遗漏什么

from core.

LynMoe avatar LynMoe commented on May 21, 2024

core的日志你截取的都是网站的访问日志而不是importer的日志,可以试试加上 grep Importer 试试,可以先关闭再启动并等待一分钟左右即可看到相关日志

然后fetcher不启动的原因看起来是找不到配置文件,可以检查一下是否已经改名成dev.json并在启动语句前加上 NODE_ENV=dev来让程序寻找到dev.json

关于定时任务的作用就是从Google Drive中读取视频信息并导入到core的数据库中

另外想问一句你上传到网盘的数据有没有经过fetcher处理.... (毕竟看你fetcher都没正常运行
core导入的一定是要fetcher处理过的才行,不是随便一个视频都可以的

from core.

monsterxcn avatar monsterxcn commented on May 21, 2024

啊,那原来是我没有 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

我觉得我需要等几天再看有没有数据了

from core.

LynMoe avatar LynMoe commented on May 21, 2024

Unknown database 'javclub' 写得挺明白了的吧...

数据的话你就等fetcher处理完第一个种子然后把sync目录里面的所有东西上传到网盘里就可以了

from core.

monsterxcn avatar monsterxcn commented on May 21, 2024

数据库的问题我已经检查了,那个找不到数据库应该是之前启动的时候没有先启动 lemp ,日志也记录了我没删。后来我清空日志重新编排了容器,core 日志中没有数据库的报错了。现在数据库是没问题的了,但 fetcher 对 http://qbittorrent:8585/api/v2/torrents/createCategory 发起请求的响应一直都是 409 错误。fetcher/tmp 的 downloads sync 目录下无内容。fetcher 的日志内容如下:

2020-05-04T03:14:33.511655019Z [2020-05-04T03:14:33.511] [DEBUG] Handle: Init - [Check torrent status] Starting job
2020-05-04T03:14:33.511721393Z [2020-05-04T03:14:33.511] [INFO] Module: Qbittorrent - Getting torrent list
2020-05-04T03:14:33.511946559Z [2020-05-04T03:14:33.511] [DEBUG] Module: Qbittorrent - GET /api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true
2020-05-04T03:14:33.512026522Z [2020-05-04T03:14:33.511] [DEBUG] Module: Qbittorrent - GET data:  {
2020-05-04T03:14:33.512043878Z   method: 'GET',
2020-05-04T03:14:33.512048181Z   headers: { Cookie: 'SID=RLNLgyGTTFfwgbhrwK1mxm/WD8o520p1' }
2020-05-04T03:14:33.512051822Z }
2020-05-04T03:14:33.512673306Z [2020-05-04T03:14:33.512] [DEBUG] Pull: Init - [Download queue] Starting job
2020-05-04T03:14:33.512932456Z [2020-05-04T03:14:33.512] [INFO] Module: Qbittorrent - Adding category JAVClub
2020-05-04T03:14:33.512945841Z [2020-05-04T03:14:33.512] [DEBUG] Module: Qbittorrent - POST /api/v2/torrents/createCategory
2020-05-04T03:14:33.512949872Z [2020-05-04T03:14:33.512] [DEBUG] Module: Qbittorrent - POST data:  {
2020-05-04T03:14:33.512953383Z   method: 'POST',
2020-05-04T03:14:33.512956633Z   body: URLSearchParams { 'category' => 'JAVClub', 'savePath' => 'JAVClub' },
2020-05-04T03:14:33.512960156Z   headers: { Cookie: 'SID=RLNLgyGTTFfwgbhrwK1mxm/WD8o520p1' }
2020-05-04T03:14:33.512963567Z }
2020-05-04T03:14:33.514702086Z [2020-05-04T03:14:33.514] [DEBUG] Module: Qbittorrent - GET response body []
2020-05-04T03:14:33.514733031Z [2020-05-04T03:14:33.514] [INFO] Handle: Init - [Check torrent status] Job finished, setting timer
2020-05-04T03:14:33.515114865Z [2020-05-04T03:14:33.514] [DEBUG] Module: Qbittorrent - POST response body Response {
2020-05-04T03:14:33.515130150Z   size: 0,
2020-05-04T03:14:33.515133741Z   timeout: 0,
2020-05-04T03:14:33.515136768Z   [Symbol(Body internals)]: {
2020-05-04T03:14:33.515139857Z     body: PassThrough {
2020-05-04T03:14:33.515143100Z       _readableState: [ReadableState],
2020-05-04T03:14:33.515146238Z       readable: true,
2020-05-04T03:14:33.515149235Z       _events: [Object: null prototype],
2020-05-04T03:14:33.515152063Z       _eventsCount: 2,
2020-05-04T03:14:33.515155032Z       _maxListeners: undefined,
2020-05-04T03:14:33.515157889Z       _writableState: [WritableState],
2020-05-04T03:14:33.515160789Z       writable: false,
2020-05-04T03:14:33.515163850Z       allowHalfOpen: true,
2020-05-04T03:14:33.515166993Z       _transformState: [Object],
2020-05-04T03:14:33.515183965Z       [Symbol(kCapture)]: false
2020-05-04T03:14:33.515186803Z     },
2020-05-04T03:14:33.515189282Z     disturbed: false,
2020-05-04T03:14:33.515191784Z     error: null
2020-05-04T03:14:33.515194301Z   },
2020-05-04T03:14:33.515196867Z   [Symbol(Response internals)]: {
2020-05-04T03:14:33.515199464Z     url: 'http://qbittorrent:8585/api/v2/torrents/createCategory',
2020-05-04T03:14:33.515202315Z     status: 409,
2020-05-04T03:14:33.515204848Z     statusText: 'Conflict',
2020-05-04T03:14:33.515207521Z     headers: Headers { [Symbol(map)]: [Object: null prototype] },
2020-05-04T03:14:33.515210292Z     counter: 0
2020-05-04T03:14:33.515212858Z   }
2020-05-04T03:14:33.515215354Z }
2020-05-04T03:14:33.515219700Z [2020-05-04T03:14:33.515] [INFO] Pull: Init - [Download queue] Job finished, setting timer

不知道是否和我的容器网络桥接有关,此时我的 fetcher 和 qbittorrent 同时存在于 javclub_lemp_defaultjavclub_fetcher_default 网络中, docker network 如下:

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_lemp_default 网络中剥离,让他俩只存在于 javclub_fetcher_default 网络中,但是依旧失败,刚开始日志报了一个 409 ,后来都是 403 响应,fetcher 日志如下:

[2020-05-04T03:34:32.528] [DEBUG] Handle: Init - [Check torrent status] Starting job
[2020-05-04T03:34:32.534] [INFO] Module: Qbittorrent - Getting torrent list
[2020-05-04T03:34:32.534] [DEBUG] Module: Qbittorrent - GET /api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true
[2020-05-04T03:34:32.575] [DEBUG] Pull: Init - [Download queue] Starting job
[2020-05-04T03:34:32.576] [INFO] Module: Qbittorrent - Adding category JAVClub
[2020-05-04T03:34:32.577] [DEBUG] Module: Qbittorrent - POST /api/v2/torrents/createCategory
[2020-05-04T03:34:32.630] [DEBUG] Pull: Init - Remote list [
  { driver: 'OneJAV', url: 'https://onejav.com/new/' },
  { driver: 'OneJAV', url: 'https://onejav.com/popular/' },
  { driver: 'OneJAV', url: 'https://onejav.com/random/' }
]
[2020-05-04T03:34:32.859] [DEBUG] Module: Qbittorrent - Auth body: Ok.
[2020-05-04T03:34:32.860] [INFO] Module: Qbittorrent - Cookie: SID=Ys3jgOC0uEuC/Kzgz3mtVbQt4Rr0HQkP
[2020-05-04T03:34:32.860] [DEBUG] Module: Qbittorrent - GET data:  {
  method: 'GET',
  headers: { Cookie: 'SID=Ys3jgOC0uEuC/Kzgz3mtVbQt4Rr0HQkP' }
}
[2020-05-04T03:34:32.862] [DEBUG] Module: Qbittorrent - Auth body: Ok.
[2020-05-04T03:34:32.863] [INFO] Module: Qbittorrent - Cookie: SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01
[2020-05-04T03:34:32.863] [DEBUG] Module: Qbittorrent - POST data:  {
  method: 'POST',
  body: URLSearchParams { 'category' => 'JAVClub', 'savePath' => 'JAVClub' },
  headers: { Cookie: 'SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01' }
}
[2020-05-04T03:34:32.867] [DEBUG] Module: Qbittorrent - GET response body []
[2020-05-04T03:34:32.868] [INFO] Handle: Init - [Check torrent status] Job finished, setting timer
[2020-05-04T03:34:32.869] [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-04T03:34:32.870] [INFO] Pull: Init - [Download queue] Job finished, setting timer
[2020-05-04T03:35:32.915] [DEBUG] Handle: Init - [Check torrent status] Starting job
[2020-05-04T03:35:32.915] [INFO] Module: Qbittorrent - Getting torrent list
[2020-05-04T03:35:32.915] [DEBUG] Module: Qbittorrent - GET /api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true
[2020-05-04T03:35:32.916] [DEBUG] Module: Qbittorrent - GET data:  {
  method: 'GET',
  headers: { Cookie: 'SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01' }
}
[2020-05-04T03:35:32.917] [DEBUG] Pull: Init - [Download queue] Starting job
[2020-05-04T03:35:32.917] [INFO] Module: Qbittorrent - Adding category JAVClub
[2020-05-04T03:35:32.917] [DEBUG] Module: Qbittorrent - POST /api/v2/torrents/createCategory
[2020-05-04T03:35:32.917] [DEBUG] Module: Qbittorrent - POST data:  {
  method: 'POST',
  body: URLSearchParams { 'category' => 'JAVClub', 'savePath' => 'JAVClub' },
  headers: { Cookie: 'SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01' }
}
[2020-05-04T03:35:32.921] [ERROR] Handle: Init - [Check torrent status] Job threw an error FetchError: invalid json response body at http://qbittorrent:8585/api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true reason: Unexpected end of JSON input
    at /usr/app/node_modules/node-fetch/lib/index.js:272:32
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async Qbittorrent.sendRequest (/usr/app/src/module/qbittorrent.js:57:31)
    at async Qbittorrent.getTorrentList (/usr/app/src/module/qbittorrent.js:69:24)
    at async process (/usr/app/src/handle/init.js:25:25)
    at async /usr/app/src/handle/init.js:128:5
    at async runAndSetInterval (/usr/app/src/handle/init.js:13:9) {
  message: 'invalid json response body at http://qbittorrent:8585/api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true reason: Unexpected end of JSON input',
  type: 'invalid-json'
}
[2020-05-04T03:35:32.922] [INFO] Handle: Init - [Check torrent status] Job finished, setting timer
[2020-05-04T03:35:32.915] [DEBUG] Handle: Init - [Check torrent status] Starting job
[2020-05-04T03:35:32.915] [INFO] Module: Qbittorrent - Getting torrent list
[2020-05-04T03:35:32.915] [DEBUG] Module: Qbittorrent - GET /api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true
[2020-05-04T03:35:32.916] [DEBUG] Module: Qbittorrent - GET data:  {
  method: 'GET',
  headers: { Cookie: 'SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01' }
}
[2020-05-04T03:35:32.917] [DEBUG] Pull: Init - [Download queue] Starting job
[2020-05-04T03:35:32.917] [INFO] Module: Qbittorrent - Adding category JAVClub
[2020-05-04T03:35:32.917] [DEBUG] Module: Qbittorrent - POST /api/v2/torrents/createCategory
[2020-05-04T03:35:32.917] [DEBUG] Module: Qbittorrent - POST data:  {
  method: 'POST',
  body: URLSearchParams { 'category' => 'JAVClub', 'savePath' => 'JAVClub' },
  headers: { Cookie: 'SID=TOhsOgyGUOfPB+Ra0qvdyw57AKuuIW01' }
}
[2020-05-04T03:35:32.921] [ERROR] Handle: Init - [Check torrent status] Job threw an error FetchError: invalid json response body at http://qbittorrent:8585/api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true reason: Unexpected end of JSON input
    at /usr/app/node_modules/node-fetch/lib/index.js:272:32
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
    at async Qbittorrent.sendRequest (/usr/app/src/module/qbittorrent.js:57:31)
    at async Qbittorrent.getTorrentList (/usr/app/src/module/qbittorrent.js:69:24)
    at async process (/usr/app/src/handle/init.js:25:25)
    at async /usr/app/src/handle/init.js:128:5
    at async runAndSetInterval (/usr/app/src/handle/init.js:13:9) {
  message: 'invalid json response body at http://qbittorrent:8585/api/v2/torrents/info?limit=5&category=JAVClub&filter=paused&sort=completion_on&reverse=true reason: Unexpected end of JSON input',
  type: 'invalid-json'
}
[2020-05-04T03:35:32.922] [INFO] Handle: Init - [Check torrent status] Job finished, setting timer
[2020-05-04T03:35:32.922] [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: 403,
    statusText: 'Forbidden',
    headers: Headers { [Symbol(map)]: [Object: null prototype] },
    counter: 0
  }
}
[2020-05-04T03:35:32.923] [INFO] Pull: Init - [Download queue] Job finished, setting timer

不知道是哪里的问题...

from core.

LynMoe avatar LynMoe commented on May 21, 2024

因为没法判断是否已存在分类 JAVClub 所以每次都会尝试创建一个分类, 如果已存在就会返回 409, 这个不用在意
以及 fetcher/qBittorrent 和 core 是完全没有关系的, 可以当两个东西来看, 不需要放在同一个网络里面

看日志的话应该是 qBittorrent 端的相应不符合预期, 可以检查一下 qBittorrent 里面是否存在 JAVClub 这个分类以及贴一下你拉取的 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
}

interval 是轮询延时, 以秒为单位

from core.

LynMoe avatar LynMoe commented on May 21, 2024

参照 JAVClub/fetcher@2aa57c0

因为 qBittorrent 还在快速迭代期, 所以 API 在疯狂变动, 为了避免麻烦这里钦定 4.2.1 版本(即 web API 版本为 2.4 的版本), 请升/降级到指定版本使用

如果使用 Docker 部署可以拉取最新的 docker-compose.yaml

from core.

monsterxcn avatar monsterxcn commented on May 21, 2024

之前拉取的是 qbittorrent 是最新版本的。

root@msvultr2020:~# docker image ls
REPOSITORY                TAG                 IMAGE ID            CREATED             SIZE
linuxserver/qbittorrent   latest              c77db2e3af22        5 days ago          333MB

检查一下 qBittorrent 里面是否存在 JAVClub 这个分类

这个分类如果是个叫 JAVClub 的文件夹的话,那没有


nice! 换了版本现在看起来没什么问题了。fetcher 日志中只有 409 了。

from core.

LynMoe avatar LynMoe commented on May 21, 2024

好的,要是成功部署的话还请发个喜报(不是)让我知道这玩意儿能用hhhh

from core.

monsterxcn avatar monsterxcn commented on May 21, 2024

会的 嘿嘿 (怎么会不能用呢

from core.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.