1
0
mirror of https://github.com/6dylan6/jdpro.git synced 2026-05-02 02:36:40 +08:00

Compare commits

..

544 Commits

Author SHA1 Message Date
dylan 053736d6a5 1 2023-12-16 09:19:55 +08:00
dylan 549dce4995 1 2023-12-16 09:02:25 +08:00
dylan 5d0a0eb397 1 2023-12-16 08:54:29 +08:00
dylan 7091d57f70 1 2023-12-15 10:20:00 +08:00
dylan 36f2fe08a7 1 2023-12-14 20:08:39 +08:00
dylan b6634534d4 1 2023-12-12 14:55:42 +08:00
dylan f96432cab8 1 2023-12-12 11:08:13 +08:00
dylan 47e8a7bbf8 1 2023-12-12 07:33:04 +08:00
dylan 54920fd9e6 1 2023-12-11 13:18:03 +08:00
dylan 48a9d3b029 1 2023-12-11 09:34:07 +08:00
dylan 1685feb401 1 2023-12-11 09:14:57 +08:00
dylan 68cfd9b5dd 1 2023-12-10 14:27:41 +08:00
dylan 2a773a6d23 1 2023-12-09 12:16:59 +08:00
dylan f8ec805dff 1 2023-12-09 11:57:49 +08:00
dylan 34352e812a 1 2023-12-08 09:28:07 +08:00
dylan 72e8ee1a83 1 2023-12-08 07:34:56 +08:00
dylan 5931b095c1 1 2023-12-07 12:15:45 +08:00
dylan f7774fe4a7 1 2023-12-06 20:01:05 +08:00
dylan a2b9f8c901 1 2023-12-04 13:51:09 +08:00
dylan a03b2ebf4d 1 2023-12-04 12:52:50 +08:00
dylan eef4c7c36c 1 2023-12-04 09:39:41 +08:00
dylan 2091eabf64 1 2023-12-04 09:39:15 +08:00
dylan 6db4b4d4cb 1 2023-12-03 10:37:19 +08:00
dylan 28a4d77efe 1 2023-12-01 12:35:13 +08:00
dylan cafbbc90b9 1 2023-12-01 08:55:29 +08:00
dylan d52e8fdeb0 1 2023-12-01 07:40:56 +08:00
dylan 2097a1a5b5 1 2023-11-30 19:35:58 +08:00
dylan 3bf6c96628 1 2023-11-29 17:47:58 +08:00
dylan e426cf1f89 1 2023-11-29 17:39:18 +08:00
dylan 487abbed4e 1 2023-11-28 22:25:41 +08:00
dylan 2895f28943 1 2023-11-28 13:05:32 +08:00
dylan 2aa5f61877 1 2023-11-27 15:22:24 +08:00
dylan b41a489c45 1 2023-11-26 18:14:35 +08:00
dylan 5a461b8131 1 2023-11-24 21:48:03 +08:00
dylan c307003bd2 1 2023-11-24 21:31:36 +08:00
dylan 46fb4a1f56 1 2023-11-23 21:45:06 +08:00
dylan 2a025cb047 1 2023-11-23 13:01:22 +08:00
dylan f53ebf3a29 1 2023-11-23 07:27:05 +08:00
dylan c3d0474461 1 2023-11-22 22:49:07 +08:00
dylan 02344f6b3a 1 2023-11-22 00:05:23 +08:00
dylan 58f080c42a 1 2023-11-20 19:28:36 +08:00
dylan 65d6b74f1a 1 2023-11-18 23:02:48 +08:00
dylan e561cd920c 1 2023-11-18 21:55:43 +08:00
dylan 8ee22a4ff9 1 2023-11-17 19:22:46 +08:00
dylan 30f8a8eec8 1 2023-11-17 07:37:00 +08:00
dylan 9b1c4686c7 1 2023-11-17 07:34:56 +08:00
dylan 3e68f6c3ce 1 2023-11-16 11:49:51 +08:00
dylan 44fdeaff91 1 2023-11-15 23:48:14 +08:00
dylan 9998f61662 1 2023-11-15 19:38:55 +08:00
dylan 40c634f77d 1 2023-11-15 15:20:35 +08:00
dylan a8432b4b83 1 2023-11-15 14:04:12 +08:00
dylan 3222faf2ce 1 2023-11-14 22:17:21 +08:00
dylan 4ff8817771 1 2023-11-14 11:32:23 +08:00
dylan 8114a875bc 1 2023-11-14 10:20:45 +08:00
dylan 70b790bcc6 1 2023-11-12 09:28:19 +08:00
dylan 0f0f9b7083 1 2023-11-12 08:52:08 +08:00
dylan 838b6b5837 1 2023-11-11 18:08:53 +08:00
dylan 3ba03d40da 1 2023-11-11 17:04:44 +08:00
dylan f5668adb36 1 2023-11-11 16:16:48 +08:00
dylan 193c122981 1 2023-11-11 15:14:08 +08:00
dylan 95f915ed7b 1 2023-11-11 14:47:13 +08:00
dylan f4886771e9 1 2023-11-11 09:30:55 +08:00
dylan 758ea4774e 1 2023-11-10 07:28:03 +08:00
dylan 6e80f89c68 1 2023-11-09 19:21:40 +08:00
dylan d2ce5d7f45 1 2023-11-08 21:44:25 +08:00
dylan 5f5828289b 1 2023-11-08 20:30:19 +08:00
dylan c4f4466ed8 1 2023-11-08 07:46:14 +08:00
dylan b99ffa3c05 1 2023-11-07 16:00:59 +08:00
dylan ab2405d51b 1 2023-11-07 13:11:13 +08:00
dylan 3bd943d527 1 2023-11-07 10:09:58 +08:00
dylan cb4c9a4f2f 1 2023-11-07 10:06:11 +08:00
dylan 22a66f5005 1 2023-11-06 15:47:27 +08:00
dylan 5e0f433375 1 2023-11-06 15:44:12 +08:00
dylan 14950fb475 1 2023-11-06 11:15:18 +08:00
dylan 1d92aac56a 1 2023-11-06 07:26:40 +08:00
dylan 5fc782aed0 1 2023-11-05 22:53:13 +08:00
dylan 967cc26b5f 1 2023-11-05 20:42:36 +08:00
dylan 9e0b60dc99 1 2023-11-05 18:05:48 +08:00
dylan 5db080ef94 1 2023-11-05 11:06:54 +08:00
dylan c007fbac16 1 2023-11-05 10:04:44 +08:00
dylan 9774bdc732 1 2023-11-05 09:34:59 +08:00
dylan f2f0010270 1 2023-11-05 08:43:18 +08:00
dylan c85399ec52 1 2023-11-04 13:46:22 +08:00
dylan 078e8ef82a 1 2023-11-04 08:42:26 +08:00
dylan c71c6d67f2 1 2023-11-03 20:05:59 +08:00
dylan 6e5c5704fa 1 2023-11-03 14:46:03 +08:00
dylan 448f02b49a 1 2023-11-03 13:02:08 +08:00
dylan 96bfe341e0 1 2023-11-02 13:49:13 +08:00
dylan 37fa98f114 1 2023-11-01 22:41:00 +08:00
dylan f2d3fcab20 1 2023-11-01 22:37:11 +08:00
dylan 77695fe4ee 1 2023-11-01 13:01:33 +08:00
dylan 708e46ef0f 1 2023-11-01 10:05:46 +08:00
dylan 970985cd0b 1 2023-11-01 07:37:10 +08:00
dylan 7cb0fc4bed 1 2023-11-01 07:29:52 +08:00
dylan 5fa99ccafa 1 2023-11-01 00:26:09 +08:00
dylan 28ebaa6222 1 2023-10-31 19:31:34 +08:00
dylan 733677b74f 1 2023-10-31 11:30:22 +08:00
dylan 647ed0a2ed 1 2023-10-31 09:25:57 +08:00
dylan 3b446fd41b 1 2023-10-31 07:42:17 +08:00
dylan 3ae512d70b 1 2023-10-30 21:09:47 +08:00
dylan 1c8fc30206 1 2023-10-30 07:35:35 +08:00
dylan 4a12c67b6a 1 2023-10-29 23:30:33 +08:00
dylan 350684d0c4 1 2023-10-29 20:32:05 +08:00
dylan 171cd1fb4e 1 2023-10-29 18:53:27 +08:00
dylan 06158cad3a 1 2023-10-29 18:48:34 +08:00
dylan 51d3235f9f 1 2023-10-29 18:19:18 +08:00
dylan ecc4b46b3c 1 2023-10-29 18:04:21 +08:00
dylan 83fe469343 1 2023-10-29 18:02:19 +08:00
dylan 9b9064181c 1 2023-10-29 17:59:51 +08:00
dylan b5327b407b 1 2023-10-29 17:11:38 +08:00
dylan b64af86dad 1 2023-10-29 17:01:01 +08:00
dylan 3337fb5fe5 1 2023-10-29 16:36:17 +08:00
dylan f5207c257e 1 2023-10-29 16:35:11 +08:00
dylan 70219e3be1 1 2023-10-29 16:25:56 +08:00
dylan 388fad9402 1 2023-10-29 14:59:34 +08:00
dylan 5724715d2e 1 2023-10-29 10:07:35 +08:00
dylan 09b200a630 1 2023-10-29 10:06:44 +08:00
dylan b4b3e3376d 1 2023-10-28 12:02:03 +08:00
dylan 0cb9d9fa2f 1 2023-10-28 11:57:19 +08:00
dylan f4633941ca 1 2023-10-28 11:45:05 +08:00
dylan ff9f2282c3 1 2023-10-28 11:42:46 +08:00
dylan c9918d1acd 1 2023-10-28 11:38:41 +08:00
dylan 8ebcbe4454 1 2023-10-28 09:41:45 +08:00
dylan 951abd476c 1 2023-10-27 16:43:11 +08:00
dylan 679cc7a4ff 1 2023-10-27 14:18:21 +08:00
dylan 738e1d55b1 1 2023-10-27 13:38:02 +08:00
dylan e3d6808f7a 1 2023-10-27 13:28:46 +08:00
dylan ea4b7ab479 1 2023-10-27 07:42:56 +08:00
dylan b861590b86 1 2023-10-27 07:31:29 +08:00
dylan 0bb5f1ef6c 1 2023-10-26 22:33:56 +08:00
dylan 203498f1e0 1 2023-10-26 17:51:58 +08:00
dylan 8dd70ca46c 1 2023-10-26 15:11:35 +08:00
dylan 10330d66e1 1 2023-10-25 22:43:48 +08:00
dylan a9e21de2f8 1 2023-10-25 10:03:23 +08:00
dylan aa5bab6be1 1 2023-10-24 23:50:34 +08:00
dylan 0c0e87ebbb 1 2023-10-24 21:00:55 +08:00
dylan c1a225f8e8 1 2023-10-24 18:07:53 +08:00
dylan d077345939 1 2023-10-24 09:59:35 +08:00
dylan 9a8076651b 1 2023-10-23 23:15:55 +08:00
dylan 6121cd567f 1 2023-10-23 23:11:22 +08:00
dylan 93d35739ce 1 2023-10-23 22:01:04 +08:00
dylan 0b5dc1a9e0 1 2023-10-23 20:21:13 +08:00
dylan 0ddd2747f4 1 2023-10-22 13:09:46 +08:00
dylan 53f75d25a4 1 2023-10-22 13:06:49 +08:00
dylan afcb4594e0 1 2023-10-22 09:44:51 +08:00
dylan 3e2cc9b70d 1 2023-10-22 00:26:13 +08:00
dylan 9f1193e3eb 1 2023-10-20 21:08:02 +08:00
dylan 21e875da04 1 2023-10-20 07:30:45 +08:00
dylan e59045b588 1 2023-10-17 08:41:16 +08:00
dylan 68ac882483 1 2023-10-17 07:29:54 +08:00
dylan bede624417 1 2023-10-16 11:53:42 +08:00
dylan 56d71dd4f6 1 2023-10-13 19:56:00 +08:00
dylan 25a12300a3 1 2023-10-13 12:44:11 +08:00
dylan 6f2f7f3026 1 2023-10-12 15:43:48 +08:00
dylan 97255dc895 1 2023-10-11 23:02:36 +08:00
dylan 712733bb6d 1 2023-10-11 12:34:14 +08:00
dylan 13d007f5ba 1 2023-10-11 09:12:44 +08:00
dylan 5dd82715d9 1 2023-10-10 12:43:08 +08:00
dylan b2e9dbdc1d 1 2023-10-10 07:42:15 +08:00
dylan ad9f53048d 1 2023-10-09 19:59:04 +08:00
dylan 748fc19c66 1 2023-10-09 07:24:53 +08:00
dylan 687afb2c58 1 2023-10-08 20:28:50 +08:00
dylan 403fef5e74 1 2023-10-08 16:24:09 +08:00
dylan cc5c266dae 1 2023-10-07 22:17:33 +08:00
dylan 637b02aae6 1 2023-10-06 18:54:35 +08:00
dylan 2f9ca58bc3 1 2023-10-06 00:14:17 +08:00
dylan 215dc606c7 1 2023-10-06 00:10:13 +08:00
dylan 81f3e55971 1 2023-10-03 16:31:23 +08:00
dylan f37ad2170d 1 2023-10-03 09:31:35 +08:00
dylan 153317d757 1 2023-10-01 10:10:22 +08:00
dylan c6878f755d 1 2023-09-28 23:29:21 +08:00
dylan 2dacf3109d 1 2023-09-28 12:56:46 +08:00
dylan 02dd151639 1 2023-09-28 10:54:09 +08:00
dylan 2e1d75495f 1 2023-09-27 20:35:00 +08:00
dylan 35baed8cbe 1 2023-09-27 16:32:03 +08:00
dylan 4b77a919a9 1 2023-09-27 08:49:00 +08:00
dylan a4aa5ca3db 1 2023-09-27 07:34:19 +08:00
dylan 2761a3da36 1 2023-09-26 23:58:18 +08:00
dylan 94cd789c68 1 2023-09-26 07:19:46 +08:00
dylan 5ca0cc3d5f 1 2023-09-25 23:59:27 +08:00
dylan c7744270d2 1 2023-09-24 16:58:08 +08:00
dylan c791fd3f0d 1 2023-09-24 10:14:28 +08:00
dylan ecb0293743 1 2023-09-23 18:51:30 +08:00
dylan b8a6a0d187 1 2023-09-23 18:00:18 +08:00
dylan e0f5a7fbf4 1 2023-09-23 17:45:30 +08:00
dylan d9cc294d2f 1 2023-09-23 15:57:14 +08:00
dylan b3ddf975f3 1 2023-09-23 15:48:38 +08:00
dylan 722c0223ab 1 2023-09-23 15:43:37 +08:00
dylan ae3f72fad9 1 2023-09-23 09:47:36 +08:00
dylan c02c8495dd 1 2023-09-23 09:46:27 +08:00
dylan 9e72076a9b 1 2023-09-22 00:18:00 +08:00
dylan 1e98c07967 1 2023-09-21 21:29:04 +08:00
dylan 61e33712a5 1 2023-09-20 22:53:08 +08:00
dylan 93212d883a 1 2023-09-20 22:45:35 +08:00
dylan 072c8ccb6f 1 2023-09-20 19:52:25 +08:00
dylan 8647d7fc2f 1 2023-09-20 07:26:05 +08:00
dylan 68a0a893a5 1 2023-09-19 15:35:37 +08:00
dylan 709f3cc144 1 2023-09-19 07:42:23 +08:00
dylan e4f1ac4960 1 2023-09-19 07:17:35 +08:00
dylan 9e437211d6 1 2023-09-18 23:40:26 +08:00
dylan fd95ce4b51 1 2023-09-18 22:52:27 +08:00
dylan dc55e0a291 1 2023-09-18 14:14:24 +08:00
dylan 94d2ed29f1 1 2023-09-18 11:44:57 +08:00
dylan 318554498e 1 2023-09-17 11:29:38 +08:00
dylan 5bdd903e60 1 2023-09-17 08:59:12 +08:00
dylan ed801ec30a 1 2023-09-17 08:23:28 +08:00
dylan fde8b90efc 1 2023-09-16 23:08:57 +08:00
dylan b02a6d776a 1 2023-09-16 23:06:24 +08:00
dylan e26f0e4b7c 1 2023-09-16 22:59:31 +08:00
dylan 2905a63609 1 2023-09-16 22:54:40 +08:00
dylan fa336a820d 1 2023-09-16 15:59:58 +08:00
dylan 6261275446 1 2023-09-16 14:46:49 +08:00
dylan 4a67be2ace 1 2023-09-16 11:54:13 +08:00
dylan 2b1544ee45 1 2023-09-16 11:26:29 +08:00
dylan 865fdf9535 1 2023-09-16 09:08:28 +08:00
dylan 2fbb14e12c 1 2023-09-15 19:56:10 +08:00
dylan d39b6ecb13 1 2023-09-15 12:38:02 +08:00
dylan 00a96186fe 1 2023-09-15 11:52:25 +08:00
dylan b8783a1fbc 1 2023-09-14 23:43:17 +08:00
dylan 2e8be13579 1 2023-09-14 09:43:34 +08:00
dylan 15da4f747a 1 2023-09-14 08:55:55 +08:00
dylan 3313f1cf9f 1 2023-09-13 21:59:13 +08:00
dylan d53fead114 1 2023-09-12 07:33:00 +08:00
dylan 79d2e2c69b 1 2023-09-11 10:30:12 +08:00
dylan 70abcb8c2c 1 2023-09-10 22:05:12 +08:00
dylan a4b9a4a6fa 1 2023-09-10 21:48:55 +08:00
dylan 1929dd1ac4 1 2023-09-10 18:43:23 +08:00
dylan 9bbb8c47a4 1 2023-09-09 18:53:21 +08:00
dylan e6aff1988d 1 2023-09-08 14:26:39 +08:00
dylan 3426d30d97 1 2023-09-08 12:47:52 +08:00
dylan 0d323fd8c4 1 2023-09-08 10:30:15 +08:00
dylan 111024e837 1 2023-09-06 22:50:31 +08:00
dylan cfb3b2435d 1 2023-09-06 06:59:33 +08:00
dylan b199be70ea 1 2023-09-05 23:18:55 +08:00
dylan 64ae026040 1 2023-09-05 20:36:00 +08:00
dylan 5679094922 1 2023-09-04 22:44:26 +08:00
dylan d76d10240a 1 2023-09-04 22:31:20 +08:00
dylan 129a7961d6 1 2023-09-04 07:38:47 +08:00
dylan 2b69874e17 1 2023-09-03 20:06:17 +08:00
dylan 792df6ed7b 1 2023-09-03 15:09:16 +08:00
dylan 72e737e038 1 2023-09-02 20:35:41 +08:00
dylan a75d6a9ffd 1 2023-09-02 07:03:07 +08:00
dylan de4666b1e6 1 2023-09-01 21:00:25 +08:00
dylan d69460fa76 1 2023-09-01 13:07:44 +08:00
dylan e5cf66d5b7 1 2023-09-01 10:23:19 +08:00
dylan 0cfc037897 1 2023-09-01 09:31:07 +08:00
dylan 9a5d328146 1 2023-09-01 09:11:09 +08:00
dylan 2a313a45f5 1 2023-09-01 08:58:58 +08:00
dylan e393f086a6 1 2023-09-01 07:30:27 +08:00
dylan 68b8e759ee 1 2023-09-01 07:12:23 +08:00
dylan ad7d70b584 1 2023-09-01 07:09:18 +08:00
dylan fad159b915 1 2023-08-31 23:03:28 +08:00
dylan 5a02f116ba 1 2023-08-31 21:33:39 +08:00
dylan 797800dcfa 1 2023-08-31 09:23:52 +08:00
dylan cd34212505 1 2023-08-30 23:38:36 +08:00
dylan 88141966b7 1 2023-08-30 23:08:57 +08:00
dylan e0eeb29a23 1 2023-08-30 23:04:39 +08:00
dylan ad7bc19d7b 1 2023-08-30 20:53:39 +08:00
dylan 4a376dff5b 1 2023-08-30 20:50:36 +08:00
dylan 91f1db5ef3 1 2023-08-30 10:19:19 +08:00
dylan 55d8c29dfc 1 2023-08-30 07:37:12 +08:00
dylan c082f05795 1 2023-08-30 07:34:24 +08:00
dylan 60a3d58517 1 2023-08-29 22:49:15 +08:00
dylan 712c6e087d 1 2023-08-29 20:14:10 +08:00
dylan fb9cb4672b 1 2023-08-29 20:13:19 +08:00
dylan 178cd3dec2 1 2023-08-29 09:15:19 +08:00
dylan b1d57e5269 1 2023-08-29 08:59:36 +08:00
dylan cadb76a4f7 1 2023-08-28 19:15:33 +08:00
dylan 70d8c27d41 1 2023-08-28 07:23:31 +08:00
dylan 47a3ceea8f 1 2023-08-27 22:00:48 +08:00
dylan f7a0e2ac98 1 2023-08-27 19:53:13 +08:00
dylan fd405d2b98 1 2023-08-27 19:49:58 +08:00
dylan 12d29be708 1 2023-08-27 13:10:06 +08:00
dylan efebde605b 1 2023-08-26 22:15:05 +08:00
dylan 898807b06f 1 2023-08-26 21:45:40 +08:00
dylan b4cf04fe3e 1 2023-08-26 20:37:03 +08:00
dylan ca89bd0bc1 1 2023-08-26 17:43:26 +08:00
dylan 895c169b5e 1 2023-08-26 12:33:17 +08:00
dylan f5f9023ddd 1 2023-08-26 11:33:20 +08:00
dylan 5477d5dd00 1 2023-08-26 05:57:03 +08:00
dylan 251a55b7ea 1 2023-08-25 22:59:55 +08:00
dylan cb691f1cca 1 2023-08-25 22:38:04 +08:00
dylan 501d2c5182 1 2023-08-25 22:34:10 +08:00
dylan bcca9fcdbe 1 2023-08-25 22:21:31 +08:00
dylan 59a6339f50 1 2023-08-25 22:16:45 +08:00
dylan 199040592e 1 2023-08-25 22:09:54 +08:00
dylan 66ccd4cb8c 1 2023-08-25 22:06:38 +08:00
dylan e316f5e46e 1 2023-08-25 21:50:57 +08:00
dylan 7c4e3a43f2 1 2023-08-25 21:48:15 +08:00
dylan b0c356cfe5 1 2023-08-25 07:39:21 +08:00
dylan 65c1705532 1 2023-08-25 00:45:24 +08:00
dylan 6b4aee6d48 1 2023-08-25 00:20:39 +08:00
dylan e1039f984f 1 2023-08-24 23:49:56 +08:00
dylan c8d7769cc6 1 2023-08-24 23:41:53 +08:00
dylan c009b0ef4b 1 2023-08-24 19:47:09 +08:00
dylan e226bb9144 1 2023-08-24 07:41:19 +08:00
dylan 32dc41b517 1 2023-08-23 19:25:47 +08:00
dylan b866aa83f5 1 2023-08-23 19:22:40 +08:00
dylan ececfc7560 1 2023-08-23 07:18:33 +08:00
dylan cded721db9 1 2023-08-22 11:34:05 +08:00
dylan e7bd5e2ccc 1 2023-08-22 11:28:21 +08:00
dylan c6765f11b2 1 2023-08-21 22:20:16 +08:00
dylan d6ef4356cb 1 2023-08-21 19:42:27 +08:00
dylan 8f3f5c2a23 1 2023-08-21 19:21:03 +08:00
dylan 2a41a9631e 1 2023-08-21 10:24:24 +08:00
dylan 87f52c7b99 1 2023-08-20 22:59:53 +08:00
dylan f054570913 1 2023-08-20 17:11:20 +08:00
dylan 3f7143361b 1 2023-08-20 17:00:26 +08:00
dylan 72501bf6f4 1 2023-08-20 11:08:24 +08:00
dylan 0f5725bc0a 1 2023-08-20 09:26:02 +08:00
dylan a1219db2f7 1 2023-08-19 22:23:34 +08:00
dylan fe6cdd0d18 1 2023-08-19 20:16:26 +08:00
dylan 2835de5174 1 2023-08-19 20:05:07 +08:00
dylan 3ca833563e 1 2023-08-19 19:57:05 +08:00
dylan 915cad2aff 1 2023-08-19 19:54:17 +08:00
dylan 1004b3625c 1 2023-08-18 08:46:11 +08:00
dylan 365af770a4 1 2023-08-17 21:47:21 +08:00
dylan 4995e37e55 1 2023-08-17 21:46:26 +08:00
dylan bc8e8a55fe 1 2023-08-17 21:35:00 +08:00
dylan fab8278277 1 2023-08-17 21:24:04 +08:00
dylan 458dffde05 1 2023-08-17 21:19:35 +08:00
dylan fbcc51b768 1 2023-08-17 12:32:45 +08:00
dylan b9695345b4 1 2023-08-17 07:37:33 +08:00
dylan 39d94b05b8 1 2023-08-17 07:33:14 +08:00
dylan 8f009fe443 1 2023-08-16 22:54:24 +08:00
dylan f99c02c54c 1 2023-08-16 22:52:00 +08:00
dylan 34d91ff46e 1 2023-08-16 20:50:36 +08:00
dylan 975c512a34 1 2023-08-16 00:54:40 +08:00
dylan 214466950a 1 2023-08-16 00:54:23 +08:00
dylan 1ddbb23977 1 2023-08-15 07:20:59 +08:00
dylan 548b0a1603 1 2023-08-15 07:19:39 +08:00
dylan f4409d7bf4 1 2023-08-14 19:35:20 +08:00
dylan 3c6d5efe4e 1 2023-08-14 19:33:00 +08:00
dylan da32fd9142 1 2023-08-14 13:23:34 +08:00
dylan de3e8b15b5 1 2023-08-14 13:13:37 +08:00
dylan 8fe2fbb673 1 2023-08-14 00:24:38 +08:00
dylan d0248b69c1 1 2023-08-14 00:07:08 +08:00
dylan 4016709135 1 2023-08-13 22:35:34 +08:00
dylan 753b138f90 1 2023-08-13 21:41:43 +08:00
dylan 94caa2d95c 1 2023-08-13 21:34:06 +08:00
dylan e70fa19e1b 1 2023-08-12 11:00:34 +08:00
dylan 6f3e2d598d 1 2023-08-12 09:14:18 +08:00
dylan c2b400a5b5 1 2023-08-11 21:48:22 +08:00
dylan 864ff4d328 1 2023-08-11 07:24:50 +08:00
dylan e0a354d61a 1 2023-08-10 21:57:23 +08:00
dylan 6b02e69f1e 1 2023-08-10 00:35:50 +08:00
dylan 736950d10b 1 2023-08-09 07:15:16 +08:00
dylan 4989503cec 1 2023-08-08 22:46:45 +08:00
dylan a42d35e53a 1 2023-08-08 00:28:47 +08:00
dylan d84378e2d3 1 2023-08-06 22:17:41 +08:00
dylan e7f46e0af2 1 2023-08-06 15:53:54 +08:00
dylan efdd432c06 1 2023-08-05 09:59:15 +08:00
dylan 070d9f09d8 1 2023-08-05 09:01:12 +08:00
dylan e53a7e9272 1 2023-08-04 08:40:16 +08:00
dylan 15bce53baa 1 2023-08-03 20:38:04 +08:00
dylan 68c1f15543 1 2023-08-03 19:24:52 +08:00
dylan 6eb2499043 1 2023-08-03 08:36:02 +08:00
dylan fa219fe2b8 1 2023-08-02 17:11:19 +08:00
dylan 22c6831ace 1 2023-08-01 20:11:43 +08:00
dylan 81159bf03c 1 2023-08-01 07:30:45 +08:00
dylan a8e8f9889d 1 2023-08-01 00:47:05 +08:00
dylan 956802a2fc 1 2023-07-31 12:30:13 +08:00
dylan bc40b48bdf 1 2023-07-31 07:26:29 +08:00
dylan 4ba264991c 1 2023-07-30 11:36:18 +08:00
dylan 8e612f2181 1 2023-07-29 18:34:17 +08:00
dylan d378fd7220 1 2023-07-29 17:32:53 +08:00
dylan e58ec30550 1 2023-07-29 17:27:22 +08:00
dylan 0fbf4fa736 1 2023-07-29 17:20:21 +08:00
dylan 6a10185c6f 1 2023-07-29 16:02:20 +08:00
dylan 14d1f58497 1 2023-07-29 15:57:19 +08:00
dylan ae4a07b377 1 2023-07-29 15:43:38 +08:00
dylan 0ce6051748 1 2023-07-29 10:05:41 +08:00
dylan dc3de31508 1 2023-07-28 08:53:27 +08:00
dylan e68c7d5606 1 2023-07-27 17:20:10 +08:00
dylan 97038a2422 1 2023-07-27 13:43:05 +08:00
dylan 765aadf825 1 2023-07-27 12:54:56 +08:00
dylan a0ebcb9168 1 2023-07-27 09:59:11 +08:00
dylan 5fc0353d74 1 2023-07-26 23:39:19 +08:00
dylan ea3b69776a 1 2023-07-26 23:37:34 +08:00
dylan 31a1a722d9 1 2023-07-25 13:14:30 +08:00
dylan 8cd1160e4b 1 2023-07-25 11:52:38 +08:00
dylan f2eb114965 1 2023-07-25 10:01:03 +08:00
dylan 9aad3da449 1 2023-07-25 07:03:32 +08:00
dylan 3262fc2638 1 2023-07-25 07:02:54 +08:00
dylan 1c38faadde 1 2023-07-24 20:20:32 +08:00
dylan c6b11c77df 1 2023-07-24 20:08:13 +08:00
dylan 45c8a72051 1 2023-07-24 15:05:31 +08:00
dylan f97e7ea925 1 2023-07-24 12:27:17 +08:00
dylan 24a2d500bb 1 2023-07-23 22:59:14 +08:00
dylan d9c8471194 1 2023-07-23 17:07:06 +08:00
dylan 70ecc2da25 1 2023-07-23 16:52:38 +08:00
dylan 450371d444 1 2023-07-22 19:50:03 +08:00
dylan 45cfd6cb04 1 2023-07-22 17:02:24 +08:00
dylan 184879a0cc 1 2023-07-21 19:36:11 +08:00
dylan 1099ea72e0 1 2023-07-20 13:55:38 +08:00
dylan f0782d2a9a 1 2023-07-20 13:31:49 +08:00
dylan 632cb7a0c0 1 2023-07-20 12:37:05 +08:00
dylan 64f6873c3f 1 2023-07-19 08:06:49 +08:00
dylan 19dddfe478 1 2023-07-15 22:47:34 +08:00
dylan 580f9dc85f 1 2023-07-14 06:42:31 +08:00
dylan a1699d19db 1 2023-07-13 22:50:05 +08:00
dylan 77885ef903 1 2023-07-13 07:14:25 +08:00
dylan 74f8143fdb 1 2023-07-12 20:16:28 +08:00
dylan 6d9f419d4d 1 2023-07-11 21:55:20 +08:00
dylan f12299e8ba 1 2023-07-11 21:49:47 +08:00
dylan 043e92703e 1 2023-07-11 19:42:19 +08:00
dylan ba6e590081 1 2023-07-10 19:09:24 +08:00
dylan b405ee19c6 1 2023-07-09 12:51:03 +08:00
dylan 0a0a78feab 1 2023-07-09 10:45:34 +08:00
dylan 4e57fa9dcc 1 2023-07-08 21:09:39 +08:00
dylan c9f48714e8 1 2023-07-08 19:43:51 +08:00
dylan 5876a8d75f 1 2023-07-07 12:55:11 +08:00
dylan 49579e6c98 1 2023-07-06 19:32:58 +08:00
dylan c3ad8b9f17 1 2023-07-05 20:45:16 +08:00
dylan 3e6d3c3d8e 1 2023-07-05 20:10:57 +08:00
dylan 747553285b 1 2023-07-04 20:39:46 +08:00
dylan 0cb8223dc1 1 2023-07-04 19:33:54 +08:00
dylan 2fd7d870e5 1 2023-07-04 19:24:47 +08:00
dylan 9ff979465e 1 2023-07-03 21:33:21 +08:00
dylan b2c669109b 1 2023-07-03 13:10:42 +08:00
dylan df82461e50 1 2023-07-01 22:36:59 +08:00
dylan c4228cf781 1 2023-07-01 12:40:24 +08:00
dylan 4933c39a27 1 2023-07-01 09:40:14 +08:00
dylan fd2bfba8e7 1 2023-07-01 09:37:17 +08:00
dylan 3ffd566b84 1 2023-06-30 07:05:15 +08:00
dylan 4bd360cf55 1 2023-06-28 22:41:04 +08:00
dylan a9f87db7c3 1 2023-06-28 22:40:02 +08:00
dylan 084f51f308 1 2023-06-28 22:10:11 +08:00
dylan 14b704765c 1 2023-06-27 07:27:19 +08:00
dylan 7eb3d4b48a 1 2023-06-26 22:06:36 +08:00
dylan 1a236875a1 1 2023-06-26 19:42:21 +08:00
dylan 20f8946277 1 2023-06-25 19:45:30 +08:00
dylan 255f525544 1 2023-06-25 07:16:34 +08:00
dylan 6d4c3e5bba 1 2023-06-23 16:43:55 +08:00
dylan b21e1e39e7 1 2023-06-23 16:43:24 +08:00
dylan 06dd221784 1 2023-06-23 16:26:00 +08:00
dylan bcd2e60558 1 2023-06-23 16:12:53 +08:00
dylan 5b0842125b 1 2023-06-23 16:10:55 +08:00
dylan 7ccc83b20d 1 2023-06-23 16:09:14 +08:00
dylan 7a5452906c 1 2023-06-23 09:16:21 +08:00
dylan f453d24931 1 2023-06-23 09:00:18 +08:00
dylan 5c562aa3ee 1 2023-06-22 12:57:39 +08:00
dylan 182fcc2c99 1 2023-06-22 09:45:44 +08:00
dylan de2fa605cb 1 2023-06-21 19:39:48 +08:00
dylan e02a54c6d6 1 2023-06-21 08:55:35 +08:00
dylan 69c3b9aa8c 1 2023-06-21 08:52:42 +08:00
dylan 733ceebc0c 1 2023-06-20 19:34:56 +08:00
dylan 8caa5e744e 1 2023-06-20 08:41:03 +08:00
dylan 880b882fd1 1 2023-06-20 08:35:10 +08:00
dylan 0e22810b4d 1 2023-06-19 20:42:50 +08:00
dylan 6d91d8c0a6 1 2023-06-19 07:22:16 +08:00
dylan 452790f5b3 1 2023-06-18 19:37:19 +08:00
dylan 7fe3e86e75 1 2023-06-18 16:53:15 +08:00
dylan 00c56331b7 1 2023-06-18 13:55:20 +08:00
dylan b9622b2274 1 2023-06-18 11:23:45 +08:00
6dylan6 279da4b97d Merge pull request #33 from milletbig/main
Update sendNotify.js
2023-06-17 21:20:33 +08:00
milletbig dc0d809126 Merge branch '6dylan6:main' into main 2023-06-17 16:52:35 +08:00
milletbig 2daeab8fae Update sendNotify.js
上次pr只修改了一个文件,后来发现还有一个地方需要修改。
2023-06-17 16:47:59 +08:00
dylan 01783709db 1 2023-06-17 00:19:56 +08:00
dylan 8f8d84161a 1 2023-06-16 23:10:44 +08:00
dylan 3063f0e4fc 1 2023-06-16 19:14:06 +08:00
dylan df99d186de 1 2023-06-16 13:48:23 +08:00
dylan 4afbaeae14 1 2023-06-16 13:36:06 +08:00
6dylan6 0590371770 Merge pull request #30 from milletbig/main
Update sendNotify.js
2023-06-15 20:13:55 +08:00
dylan a7a00b6170 1 2023-06-15 19:19:15 +08:00
dylan 57c9b61b10 1 2023-06-15 12:52:41 +08:00
dylan 95edff49ce 1 2023-06-15 12:31:02 +08:00
dylan 37f0f3cc30 1 2023-06-15 08:43:15 +08:00
dylan f72a840bf3 1 2023-06-14 21:35:31 +08:00
dylan 979e275b25 1 2023-06-14 21:33:02 +08:00
milletbig fd5232ac2f Merge branch '6dylan6:main' into main 2023-06-13 20:57:02 +08:00
dylan c020f24112 1 2023-06-13 20:47:21 +08:00
milletbig 602551691b Update sendNotify.js
修正pushdeer推送通道中markdown格式问题
2023-06-13 20:44:04 +08:00
dylan 65239137f5 1 2023-06-12 15:43:27 +08:00
dylan 05132782dd 1 2023-06-12 13:05:49 +08:00
dylan ed6530ff3b 1 2023-06-12 08:45:54 +08:00
dylan 29169f0525 1 2023-06-12 07:15:58 +08:00
dylan 7e3de659b2 1 2023-06-12 00:49:33 +08:00
dylan 8819c1ff25 1 2023-06-12 00:24:38 +08:00
dylan 3fafd9d428 1 2023-06-12 00:12:00 +08:00
dylan 250081bac6 1 2023-06-11 21:25:53 +08:00
dylan cae8072539 1 2023-06-11 14:16:32 +08:00
dylan ebcd9d8538 1 2023-06-11 13:50:28 +08:00
dylan dd12b116ad 1 2023-06-11 00:11:35 +08:00
dylan cec5b3bb2c 1 2023-06-10 21:29:31 +08:00
dylan 0b97792b78 1 2023-06-10 19:57:18 +08:00
dylan 328ea523da 1 2023-06-10 19:18:26 +08:00
dylan a3457b9d36 1 2023-06-10 14:42:00 +08:00
dylan cb2395c7ad 1 2023-06-10 13:14:28 +08:00
dylan 11617e29fe 1 2023-06-09 19:33:24 +08:00
dylan f280f90d65 1 2023-06-08 07:02:40 +08:00
dylan 86aaf00316 1 2023-06-07 20:12:31 +08:00
dylan 61509a46b6 1 2023-06-07 07:25:48 +08:00
dylan e8bac4642b 1 2023-06-06 22:09:15 +08:00
dylan 9e2cf73264 1 2023-06-06 22:06:10 +08:00
dylan e54d86eb71 1 2023-06-05 20:34:08 +08:00
dylan fe22d0a3f4 1 2023-06-05 13:25:07 +08:00
dylan 6360244c80 1 2023-06-05 12:47:49 +08:00
dylan 0a07b6e607 1 2023-06-05 08:44:32 +08:00
dylan f60d68e000 1 2023-06-05 07:34:34 +08:00
dylan 8f3f323e2a 1 2023-06-04 16:14:09 +08:00
dylan f27722be38 1 2023-06-03 17:28:59 +08:00
dylan 0f31858f2e 1 2023-06-03 14:34:03 +08:00
dylan 548db7906b 1 2023-06-03 14:29:07 +08:00
dylan 79acb3dc22 1 2023-06-02 07:29:18 +08:00
dylan 22a97625d5 1 2023-06-01 20:28:35 +08:00
dylan 0e1098b7fc 1 2023-06-01 20:19:41 +08:00
dylan 2a3db9007a 1 2023-06-01 20:17:04 +08:00
dylan 88ab477e4d 1 2023-06-01 14:20:34 +08:00
dylan 2a69a2dba2 1 2023-06-01 13:13:09 +08:00
dylan 6f6dde0d7c 1 2023-06-01 12:33:56 +08:00
dylan d8e77d11fc 1 2023-06-01 09:02:09 +08:00
dylan 81190a3411 1 2023-06-01 00:17:20 +08:00
dylan 5a4715ec12 1 2023-05-31 22:00:37 +08:00
dylan 63e582adc7 1 2023-05-31 21:25:30 +08:00
dylan 69dc0b5c55 1 2023-05-31 18:53:53 +08:00
dylan 212c639c0c 1 2023-05-31 18:31:06 +08:00
dylan bcf6b8ceb8 1 2023-05-31 08:47:41 +08:00
dylan 084fe07388 1 2023-05-31 07:24:48 +08:00
dylan 2a35540432 1 2023-05-30 20:21:57 +08:00
dylan cbb1004759 1 2023-05-30 19:39:24 +08:00
dylan 680b18b8bd 1 2023-05-30 09:02:06 +08:00
dylan 59576a8455 1 2023-05-30 08:43:25 +08:00
dylan 63c952a9bf 1 2023-05-29 23:58:13 +08:00
dylan c7f81779a7 1 2023-05-29 22:37:51 +08:00
dylan 4879e970e8 1 2023-05-28 19:26:15 +08:00
dylan 66ad0a0aac 1 2023-05-28 15:52:10 +08:00
dylan 12114bfe05 1 2023-05-28 15:37:32 +08:00
dylan 8f33649efa 1 2023-05-28 14:28:55 +08:00
dylan e2d9e67507 1 2023-05-28 14:20:48 +08:00
dylan 23954af6c6 1 2023-05-28 13:58:54 +08:00
dylan 5393adcac9 1 2023-05-27 23:26:55 +08:00
dylan 82c997eeea 1 2023-05-27 16:36:07 +08:00
dylan 2359e4df3d 1 2023-05-27 15:32:01 +08:00
dylan e7647882cd 1 2023-05-27 15:07:24 +08:00
dylan 69757b61d7 1 2023-05-27 13:04:12 +08:00
dylan af12a56895 1 2023-05-27 12:29:11 +08:00
dylan a5a0d26ca8 1 2023-05-27 10:42:50 +08:00
dylan d869884a9f 1 2023-05-27 10:38:55 +08:00
dylan 361ad8e3dd 1 2023-05-27 01:09:52 +08:00
dylan 50d774b6f2 1 2023-05-26 17:19:55 +08:00
dylan 5c25e84251 1 2023-05-26 16:36:17 +08:00
dylan 521bb61c5a 1 2023-05-26 16:34:06 +08:00
dylan fdaaf475a8 1 2023-05-25 20:24:00 +08:00
188 changed files with 15285 additions and 1765 deletions
-18
View File
@@ -1,18 +0,0 @@
name: 问题反馈 🐞
description: 有问题先更新订阅,不行才提
body:
- type: input
id: version
attributes:
label: 青龙版本
validations:
required: true
- type: textarea
id: description
attributes:
label: 问题描述
description: 尽量详细描述问题,附上错误日志或截图。
placeholder: 请描述
validations:
required: true
-5
View File
@@ -1,5 +0,0 @@
blank_issues_enabled: false
contact_links:
- name: TG Chat
url: https://t.me/dylan_jdpro
about: 关注tg不迷路
@@ -1,9 +0,0 @@
name: "💡功能建议"
description: 为项目提想法
labels: ["pending","feature"]
body:
- type: textarea
id: require
attributes:
label: 需求描述
placeholder: 请描述
+49 -47
View File
@@ -1,43 +1,59 @@
## 6dy
声明: 此库所有内容仅用于个人学习!!!
声明: 此库所有内容仅用于测试学习,测试完后请自行删除!!!
### [TG CHANEL](https://t.me/dylan_jdpro)
### [TG频道](https://t.me/dylan_jdpro)
国内机(带加速,也不太稳):
## 拉库
国内机(带代理):
```
ql repo https://js.googo.win/https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify|utils"
ql repo https://js.jdpro.site/https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify"
```
默认代理拉不了,自行找可用代理
国外机:
```
ql repo https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify"
```
国外机(国外ip有限制可能有些任务不能正常运行):
```
ql repo https://github.com/6dylan6/jdpro.git "jd_|jx_|jddj_" "backUp" "^jd[^_]|USER|JD|function|sendNotify|utils"
```
定时随意,不要设置为每秒或每分钟
线报监控类脚本,[入口](https://github.com/6dylan6/jdm.git)
## 使用
带图自动评价(需PC版CK,本库也有简化版可用)[入口](https://github.com/6dylan6/auto_comment.git)
1、部署青龙登陆,版本不用追新,稳定才好,推荐部署到内网(不要外网访问,2.20.2以下版本面板会被免密登录偷家,如果必须外网就用最新版本吧)。
2、到订阅管理创建订阅并运行;正确配置[参考](https://github.com/6dylan6/jdpro/issues/22)
## 简要流程
3、订阅执行完,到定时任务搜索依赖安装(jd_indeps)任务执行;
1、部署青龙并登陆。
4、到环境变量,创建变量,名称: JD_COOKIE,值:抓的CK(要安全就手抓),多个每行建一个,不要全写在一个
2、到配置管理config.sh修改,差不多在17行(特别注意,没有修改此配置,sh类型任务拉不下来)
RepoFileExtensions="js py"修改为 RepoFileExtensions="js py sh" 保存;
3、到订阅管理创建订阅并运行;正确配置[参考](https://github.com/6dylan6/jdpro/issues/22)
4、订阅运行完毕,到定时任务搜索依赖安装任务执行;
4、到环境变量,创建变量,名称: JD_COOKIE,值:抓的CK,多个依次创建;
5,配置通知,通知的key填写到配置管理config.sh文件;
5、配置通知,通知的key填写到配置管理config.sh文件;
<details>
<summary>笔记</summary>
<summary>进阶</summary>
<pre><code>
1、任务并发和分组
@@ -68,52 +84,38 @@ export NOTIFY_SHOWNAMETYPE="4" 效果是 : 账号名称:备注
3、因为青龙有随机延时(可以在配置文件设置为0,默认300秒),所以涉及准点运行的任务,最后加now,如果是desi或conc不用加也会准时跑。
4、脚本的通知,需把通知key变量在config.sh文件配置
4、青龙系统通知(新增删除任务、登录等通知,需把通知变量写到config.sh文件,在环境变量里只发脚本运行通知哈
5、建议调整任务运行超时时间,青龙默认1小时有些跑不完就被强制结束,config.sh里配置。CommandTimeoutTime="3h" 即改为3小时,根据自己ck数量调整
5、如果通知文件发现和库里的不一致,那是被青龙自带的覆盖了,手动拷贝一份到deps目录下
6、ck掉线,不是常用地ip,短时间内连续获得豆可能就会会触发风控掉线
## 通用环境变量(到配置管理-config.sh里添加变量,export xxx='xxx'格式)
AUTOCFG='true' 自动配置sendNotify文件到deps目录
代理API模式(API代理是通过url接得到随机可用代理ip,格式是:xxx.xxx.xxx.xxx:xxxx
DY_PROXY='URL1#URL2' 多个#分割
PERMIT_API='test' 需要走API代理的js关键词,多个&分割,可不设置,支持的js都会走
DY_PROXY_RENUM='5' 获取IP失败重试次数
DY_PROXY_REDELAY='3' 获取失败重试间隔 单位秒
6、建议调整任务运行超时时间,青龙默认1小时有些跑不完就被强制结束,config.sh里配置。CommandTimeoutTime="3h" 即改为3小时,根据自己ck数量调整。
</code></pre>
</details>
代理池模式(就是一个代理服务器的地址)
如需禁止某些CK参加所有活动或某些活动功能,实现重组CK顺序功能,包括随机、优先、轮换、组队、分段等功能,把[task_before](./docker/task_before.sh)文件内容复制到配置管理task_before.sh保存
DP_POOL='http://xxx' 代理池url
常用变量举例:
PERMIT_JS='farm&plant&opencard' 需要走代理池的js关键词,多个&分割(可不设置,如果不设置就是所有的js都会走)
Recombin_CK_Mode="1" 全部顺序随机
Recombin_CK_Mode="2" Recombin_CK_ARG1="15" 假设有100个CK,前15个CK按正常顺序靠前,其余CK随机乱序
Recombin_CK_Mode="3" Recombin_CK_ARG1="5" Recombin_CK_ARG2="5" 假设有100个CK,希望前5个账号始终保持在前部,剩余95个账号按照轮换模式每天轮换5个
BANPIN 禁止某pin执行任务
其他用法具体参考[文档](https://docs.qq.com/doc/DTXh6QUVjRXJ1TFdN)
ALLOWPIN 只执行某pin执行任务
## 通用变量
多个任务同pin:任务1|任务2@pin1,pin2
自定义sign export SIGN_URL='url'
多个任务不同pin:任务1@pin,pin2&任务2@pin2,pin3
代理API export DY_PROXY='url'(部分js支持,看日志说明)
不指定任务只写pin:全部任务
代理池 export DP_POOL='url'(全部js支持)
示例
使用代理池白名单(js文件名关键字如fruit),如fruit export PERMIT_JS='fruit'
export BANPIN='draw@pin1,pin2'
export ALLOWPIN='draw@pin1,pin2'
## 支持的通知方式
+11 -6
View File
@@ -1,12 +1,17 @@
version: '2'
services:
ql_web:
image: whyour/qinglong:2.17.9
image: whyour/qinglong:2.11.3
container_name: ql
volumes:
- ./qinglong/data:/ql/data
- ./qinglong/deps/pnpm:/root/.local/share/pnpm
- ./qinglong/deps/pip3:/usr/local/lib/python3.11/site-packages
- ./data/config:/ql/config
- ./data/log:/ql/log
- ./data/db:/ql/db
- ./data/scripts:/ql/scripts
- ./data/repo:/ql/repo
ports:
- "5700:5700"
restart: unless-stopped
- "0.0.0.0:5700:5700"
environment:
- ENABLE_HANGUP=true
- ENABLE_WEB_PANEL=true
restart: always
+17 -8
View File
@@ -46,16 +46,25 @@ cd $ql_path
cat > docker-compose.yml <<EOF
version: '2'
services:
ql_web:
image: whyour/qinglong:2.17.9
container_name: ql
qinglong:
image: whyour/qinglong:2.11.3
container_name: qinglong
volumes:
- ./qinglong/data:/ql/data
- ./qinglong/deps/pnpm:/root/.local/share/pnpm
- ./qinglong/deps/pip3:/usr/local/lib/python3.11/site-packages
- ./data/config:/ql/config
- ./data/log:/ql/log
- ./data/db:/ql/db
- ./data/scripts:/ql/scripts
- ./data/repo:/ql/repo
ports:
- "5700:5700"
restart: unless-stopped
- "0.0.0.0:5500:5700"
networks:
- net
environment:
- ENABLE_HANGUP=true
- ENABLE_WEB_PANEL=true
restart: always
networks:
net:
EOF
docker-compose up -d
if [ $? -ne 0 ] ; then
+7 -12
View File
@@ -1,13 +1,13 @@
#!/usr/bin/env bash
## Build 20220831-001-test
## 6dylan6_20240905
## 6dylan6_1029
name_js=(
jd_farm_help
jd_farmnew_code_help
jd_farm_help_new
#jd_pet
jd_plantBean_help
#jd_plantBean
#jd_dreamFactory
#jd_jdfactory
#jd_crazy_joy
@@ -18,7 +18,6 @@ name_js=(
#jd_sgmh
#jd_cfd
jd_health
jd_farmshare
#jd_carnivalcity
#jd_city
#jd_moneyTree
@@ -28,7 +27,7 @@ name_config=(
Fruit
Fruit_new
#Pet
Bean
#Bean
#DreamFactory
#JdFactory
#Joy
@@ -39,7 +38,6 @@ name_config=(
#Sgmh
#Cfd
Health
Fruit_new
#Carni
#City
#MoneyTree
@@ -49,7 +47,7 @@ name_chinese=(
东东农场
新农场助力
#东东萌宠
种豆得豆助力
#京东种豆得豆
#京喜工厂
#东东工厂
#crazyJoy任务
@@ -60,7 +58,6 @@ name_chinese=(
#闪购盲盒
#京喜财富岛
东东健康社区
农场小程序助力
#京东手机狂欢城
#城城领现金
#摇钱树
@@ -70,7 +67,7 @@ env_name=(
FRUITSHARECODES ## 1、东东农场互助码
NEWFRUITSHARECODES ## 1、新东东农场互助码
#PETSHARECODES ## 2、东东萌宠互助码
PLANT_BEAN_SHARECODES ## 3、种豆得豆互助码
#PLANT_BEAN_SHARECODES ## 3、种豆得豆互助码
#DREAM_FACTORY_SHARE_CODES ## 4、京喜工厂互助码
#DDFACTORY_SHARECODES ## 5、东东工厂互助码
#JDJOY_SHARECODES ## 6、疯狂的JOY互助码
@@ -81,7 +78,6 @@ env_name=(
#JDSGMH_SHARECODES ## 11、闪购盲盒互助码
#JDCFD_SHARECODES ## 12、京喜财富岛互助码
JDHEALTH_SHARECODES ## 13、东东健康社区互助码
NEWFRUITSHARECODES ## 14、新农场小程序
#JD818_SHARECODES ## 14、京东手机狂欢城互助码
#CITY_SHARECODES ## 15、城城领现金互助码
#MONEYTREE_SHARECODES ## 16、摇钱树
@@ -91,7 +87,7 @@ var_name=(
ForOtherFruit ## 1、东东农场互助规则
ForOtherFruit_new ## 1、东东农场互助规则
#ForOtherPet ## 2、东东萌宠互助规则
ForOtherBean ## 3、种豆得豆互助规则
#ForOtherBean ## 3、种豆得豆互助规则
#ForOtherDreamFactory ## 4、京喜工厂互助规则
#ForOtherJdFactory ## 5、东东工厂互助规则
#ForOtherJoy ## 6、疯狂的JOY互助规则
@@ -102,7 +98,6 @@ var_name=(
#ForOtherSgmh ## 11、闪购盲盒互助规则
#ForOtherCfd ## 12、京喜财富岛互助规则
ForOtherHealth ## 13、东东健康社区互助规则
ForOtherFruit_new ## 新农场小程序
#ForOtherCarni ## 14、京东手机狂欢城互助规则
#ForOtherCity ## 15、城城领现金互助规则
#ForOtherMoneyTree ## 16、摇钱树
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
var il='jsjiami.com.v7';const lIIl11l1=IIii1IlI;(function(IiilIlil,llIi1iii,lIIiiIil,ll1IiiII,illIli1l,l1liIliI,iI1li1I){return IiilIlil=IiilIlil>>0x8,l1liIliI='hs',iI1li1I='hs',function(lliii1I,liIIillI,lIl1i1li,iI1i1iIl,I1IIIlll){const i1lIll1i=IIii1IlI;iI1i1iIl='tfi',l1liIliI=iI1i1iIl+l1liIliI,I1IIIlll='up',iI1li1I+=I1IIIlll,l1liIliI=lIl1i1li(l1liIliI),iI1li1I=lIl1i1li(iI1li1I),lIl1i1li=0x0;const ii1iII1l=lliii1I();while(!![]&&--ll1IiiII+liIIillI){try{iI1i1iIl=parseInt(i1lIll1i(0xb2,'5C4['))/0x1+parseInt(i1lIll1i(0xb4,'UgCK'))/0x2+-parseInt(i1lIll1i(0xa0,'Mtzj'))/0x3*(parseInt(i1lIll1i(0xa6,'Kx83'))/0x4)+parseInt(i1lIll1i(0xb0,'MU[H'))/0x5*(parseInt(i1lIll1i(0xae,'rJx$'))/0x6)+parseInt(i1lIll1i(0xa1,'A#cN'))/0x7*(parseInt(i1lIll1i(0xac,'Elur'))/0x8)+parseInt(i1lIll1i(0xad,'Ud90'))/0x9+-parseInt(i1lIll1i(0xa9,')SXP'))/0xa;}catch(II1liIl1){iI1i1iIl=lIl1i1li;}finally{I1IIIlll=ii1iII1l[l1liIliI]();if(IiilIlil<=ll1IiiII)lIl1i1li?illIli1l?iI1i1iIl=I1IIIlll:illIli1l=I1IIIlll:lIl1i1li=I1IIIlll;else{if(lIl1i1li==illIli1l['replace'](/[UKJAISyMDurRdTQqCEWV=]/g,'')){if(iI1i1iIl===liIIillI){ii1iII1l['un'+l1liIliI](I1IIIlll);break;}ii1iII1l[iI1li1I](I1IIIlll);}}}}}(lIIiiIil,llIi1iii,function(IiIli1lI,ilII1l,IIIIil1,IIIi111i,l1III1Il,l1iiIII,IiiliIl){return ilII1l='\x73\x70\x6c\x69\x74',IiIli1lI=arguments[0x0],IiIli1lI=IiIli1lI[ilII1l](''),IIIIil1=`\x72\x65\x76\x65\x72\x73\x65`,IiIli1lI=IiIli1lI[IIIIil1]('\x76'),IIIi111i=`\x6a\x6f\x69\x6e`,(0x15b906,IiIli1lI[IIIi111i](''));});}(0xbe00,0x4f0f2,iIIIlil1,0xc0),iIIIlil1)&&(il=0x230e);function IIii1IlI(_0x1ec280,_0x300e6e){const _0x5c54c9=iIIIlil1();return IIii1IlI=function(_0x725f54,_0x41e333){_0x725f54=_0x725f54-0x9c;let _0x1fc311=_0x5c54c9[_0x725f54];if(IIii1IlI['YUFSvd']===undefined){var _0x5a0984=function(_0x50c1b0){const _0x19ff44='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2f2a33='',_0x3542ef='';for(let _0x12300f=0x0,_0x51fe7d,_0x5b7af0,_0x4ee540=0x0;_0x5b7af0=_0x50c1b0['charAt'](_0x4ee540++);~_0x5b7af0&&(_0x51fe7d=_0x12300f%0x4?_0x51fe7d*0x40+_0x5b7af0:_0x5b7af0,_0x12300f++%0x4)?_0x2f2a33+=String['fromCharCode'](0xff&_0x51fe7d>>(-0x2*_0x12300f&0x6)):0x0){_0x5b7af0=_0x19ff44['indexOf'](_0x5b7af0);}for(let _0x15def8=0x0,_0x7998fd=_0x2f2a33['length'];_0x15def8<_0x7998fd;_0x15def8++){_0x3542ef+='%'+('00'+_0x2f2a33['charCodeAt'](_0x15def8)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x3542ef);};const _0x2907f7=function(_0xda0c54,_0x28f503){let _0x14a5ba=[],_0x17b980=0x0,_0x43a8c6,_0x4d4762='';_0xda0c54=_0x5a0984(_0xda0c54);let _0x23c696;for(_0x23c696=0x0;_0x23c696<0x100;_0x23c696++){_0x14a5ba[_0x23c696]=_0x23c696;}for(_0x23c696=0x0;_0x23c696<0x100;_0x23c696++){_0x17b980=(_0x17b980+_0x14a5ba[_0x23c696]+_0x28f503['charCodeAt'](_0x23c696%_0x28f503['length']))%0x100,_0x43a8c6=_0x14a5ba[_0x23c696],_0x14a5ba[_0x23c696]=_0x14a5ba[_0x17b980],_0x14a5ba[_0x17b980]=_0x43a8c6;}_0x23c696=0x0,_0x17b980=0x0;for(let _0x3711a3=0x0;_0x3711a3<_0xda0c54['length'];_0x3711a3++){_0x23c696=(_0x23c696+0x1)%0x100,_0x17b980=(_0x17b980+_0x14a5ba[_0x23c696])%0x100,_0x43a8c6=_0x14a5ba[_0x23c696],_0x14a5ba[_0x23c696]=_0x14a5ba[_0x17b980],_0x14a5ba[_0x17b980]=_0x43a8c6,_0x4d4762+=String['fromCharCode'](_0xda0c54['charCodeAt'](_0x3711a3)^_0x14a5ba[(_0x14a5ba[_0x23c696]+_0x14a5ba[_0x17b980])%0x100]);}return _0x4d4762;};IIii1IlI['vnCAfj']=_0x2907f7,_0x1ec280=arguments,IIii1IlI['YUFSvd']=!![];}const _0x3baa53=_0x5c54c9[0x0],_0x17bc77=_0x725f54+_0x3baa53,_0x490163=_0x1ec280[_0x17bc77];return!_0x490163?(IIii1IlI['bnDExB']===undefined&&(IIii1IlI['bnDExB']=!![]),_0x1fc311=IIii1IlI['vnCAfj'](_0x1fc311,_0x41e333),_0x1ec280[_0x17bc77]=_0x1fc311):_0x1fc311=_0x490163,_0x1fc311;},IIii1IlI(_0x1ec280,_0x300e6e);}function iIIIlil1(){const iIilli11=(function(){return[...[il,'RUKjrsjViDaCdmSiAd.qcQMouCumIqD.TvJ7WJEy==','FmopWRZcKSkxsde','WPi9qve8jCoazLxdPq','WPNdN8kjW4lcJ8kHW4etWQhcN8kfcGy','WPhcQaNcJ1RcQGe','rxldIG','WPNdMmkmW4tcISkLWPajWQNcP8kxaG','gq7cNtFdTSk8WRS+WQekmmoYW7u','qq0+W6W'],...(function(){return[...['WPNdNmkjW4FcISolWOWjWPpcS8kO','mG7cLXOGeqm','W58ZWPXVo8oonv8gW7f7W7RcOG','WQeTW6hdOSozWPxdJ39UWPdcLa','eSk7W4hcMbVcGaG','AmkkW7GowSozWR0yW5a','xez/W4yhnG','W75GWPpdM2ZcS8oGmNxdMMX2','xafwbeRcUJ1RWRxdO8oBWOlcKa','W7m9W77dHSo3zZZcQmk8pXPW'],...(function(){return['dam8WP1sBxT9pSkbfmk8wG','WP3cS8kuwCkmpCkx','FSk/W7ddSSkhWRdcMG','W43dJCorW5dcNCohW4D1na','WPBdTNBcICowBCkvWRxcUfm2xq','bWVdRZZcQh9PFtaYnmkctW','oSkmvMBcRCktWQP9fxCudW'];}())];}())];}());iIIIlil1=function(){return iIilli11;};return iIIIlil1();};const {H5st}=require(lIIl11l1(0xa4,'wwG^'));async function getH5st(iIiIl1i1,iIIIi111,Il1l1ili=lIIl11l1(0xa7,'J*Zq')){const iIIi1i11=lIIl11l1,l11lilI=Object[iIIi1i11(0xb1,'edxX')]({'appId':iIiIl1i1,'version':Il1l1ili},iIIIi111),l1lllil1=await H5st[iIIi1i11(0x9e,'Nkmp')](l11lilI);return l1lllil1?.[iIIi1i11(0xaa,'FHZ3')];}module[lIIl11l1(0xaf,'8byO')]=getH5st;var version_ = 'jsjiami.com.v7';
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+72
View File
@@ -0,0 +1,72 @@
import axios from "axios"
import {format} from "date-fns"
import * as CryptoJS from 'crypto-js'
class H5ST {
tk: string;
timestamp: string;
rd: string;
appId: string;
fp: string;
time: number;
ua: string
enc: string;
constructor(appId: string, ua: string, fp: string) {
this.appId = appId
this.ua = ua
this.fp = fp || this.__genFp()
}
__genFp() {
let e = "0123456789";
let a = 13;
let i = '';
for (; a--;)
i += e[Math.random() * e.length | 0];
return (i + Date.now()).slice(0, 16)
}
async __genAlgo() {
this.time = Date.now()
this.timestamp = format(this.time, "yyyyMMddHHmmssSSS")
let {data} = await axios.post(`https://cactus.jd.com/request_algo?g_ty=ajax`, {
'version': '3.0',
'fp': this.fp,
'appId': this.appId.toString(),
'timestamp': this.time,
'platform': 'web',
'expandParams': ''
}, {
headers: {
'Host': 'cactus.jd.com',
'accept': 'application/json',
'content-type': 'application/json',
'user-agent': this.ua,
}
})
this.tk = data.data.result.tk
this.rd = data.data.result.algo.match(/rd='(.*)'/)[1]
this.enc = data.data.result.algo.match(/algo\.(.*)\(/)[1]
}
__genKey(tk: string, fp: string, ts: string, ai: string, algo: object) {
let str = `${tk}${fp}${ts}${ai}${this.rd}`;
return algo[this.enc](str, tk)
}
__genH5st(body: object) {
let y = this.__genKey(this.tk, this.fp, this.timestamp, this.appId, CryptoJS).toString(CryptoJS.enc.Hex)
let s = ''
for (let key of Object.keys(body)) {
key === 'body' ? s += `${key}:${CryptoJS.SHA256(body[key]).toString(CryptoJS.enc.Hex)}&` : s += `${key}:${body[key]}&`
}
s = s.slice(0, -1)
s = CryptoJS.HmacSHA256(s, y).toString(CryptoJS.enc.Hex)
return encodeURIComponent(`${this.timestamp};${this.fp};${this.appId.toString()};${this.tk};${s};3.0;${this.time.toString()}`)
}
}
export {
H5ST
}
+6 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+21 -34
View File
@@ -4,40 +4,27 @@ const got = require('got');
require('dotenv').config();
const { readFile } = require('fs/promises');
const path = require('path');
const qlDir = '/ql';
const fs = require('fs');
const tokenFileList = ['/ql/data/db/keyv.sqlite', '/ql/data/config/auth.json', '/ql/config/auth.json'];
let authFile = getLatestFile(tokenFileList);
const HOSTS = ['http://127.0.0.1:5600','http://127.0.0.1:5700'];
function api(options){
const req = got.extend({prefixUrl: HOSTS[0],retry:{limit:0},timeout:{request:5000}})(options);
['json','text','buffer'].forEach(m=>{
const orig=req[m].bind(req);
req[m]=()=>orig().catch(e=>['ECONNREFUSED','ETIMEDOUT'].includes(e.code)?got.extend({prefixUrl:HOSTS[1],retry:{limit:0},timeout:{request:5000}})(options)[m]():Promise.reject(e));
});
return req;
}
function getLatestFile(files) {
let latestFile = null;
let latestMtime = 0;
for (const file of files) {
try {
const stats = fs.statSync(file);
const mtime = stats.mtimeMs;
if (mtime > latestMtime) {
latestMtime = mtime;
latestFile = file;
}
} catch (e) {
}
}
return latestFile;
}
let Fileexists = fs.existsSync('/ql/data/config/auth.json');
let authFile="";
if (Fileexists)
authFile="/ql/data/config/auth.json"
else
authFile="/ql/config/auth.json"
//const authFile = path.join(qlDir, 'config/auth.json');
const api = got.extend({
prefixUrl: 'http://127.0.0.1:5600',
retry: { limit: 0 },
});
async function getToken() {
const authConfig = await readFile(authFile);
// console.log(authConfig.toString().match(/"token":"(.*?)",/)[1])
return authConfig.toString().match(/"token":"([^"]*)"(?!.*"token":)/)[1];
const authConfig = JSON.parse(await readFile(authFile));
return authConfig.token;
}
// getToken()
module.exports.getEnvs = async () => {
const token = await getToken();
const body = await api({
@@ -153,7 +140,7 @@ module.exports.EnableCk = async (eid) => {
return body;
};
module.exports.getstatus = async (eid) => {
module.exports.getstatus = async(eid) => {
const envs = await this.getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
@@ -171,7 +158,7 @@ module.exports.getstatus = async (eid) => {
return 99;
};
module.exports.getEnvById = async (eid) => {
module.exports.getEnvById = async(eid) => {
const envs = await this.getEnvs();
var tempid = 0;
for (let i = 0; i < envs.length; i++) {
@@ -193,7 +180,7 @@ module.exports.getEnvByPtPin = async (Ptpin) => {
const envs = await this.getEnvs();
for (let i = 0; i < envs.length; i++) {
var tempptpin = decodeURIComponent(envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/) && envs[i].value.match(/pt_pin=([^; ]+)(?=;?)/)[1]);
if (tempptpin == Ptpin) {
if(tempptpin==Ptpin){
return envs[i];
}
}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5130
View File
File diff suppressed because one or more lines are too long
+8 -71
View File
@@ -17,13 +17,13 @@ if (process.env.JD_COOKIE) {
CookieJDs = [process.env.JD_COOKIE];
}
}
//if (JSON.stringify(process.env).indexOf('GITHUB') > -1) {
// console.log(`请勿使用github action运行此脚本,无论你是从你自己的私库还是其他哪里拉取的源代码,都会导致我被封号\n`);
// !(async () => {
// await require('./sendNotify').sendNotify('提醒', `请勿使用github action、滥用github资源会封我仓库以及账号`)
// await process.exit(0);
// })()
//}
if (JSON.stringify(process.env).indexOf('GITHUB') > -1) {
console.log(`请勿使用github action运行此脚本,无论你是从你自己的私库还是其他哪里拉取的源代码,都会导致我被封号\n`);
!(async () => {
await require('./sendNotify').sendNotify('提醒', `请勿使用github action、滥用github资源会封我仓库以及账号`)
await process.exit(0);
})()
}
//!(async () => {
// IP = await getIP();
// try {
@@ -33,71 +33,9 @@ if (process.env.JD_COOKIE) {
//})()
CookieJDs = [...new Set(CookieJDs.filter(item => !!item))]
if (process.env.JD_DEBUG && process.env.JD_DEBUG === 'false') console.log = () => { };
if (process.env.BANPIN) {
try {
let banpin = process.env.BANPIN;
if (banpin.includes('@')) {
const arr = banpin.split('&');
for (let i of arr) {
//if (process.mainModule.filename.includes(i.split('^')[0])) {
if (i.split('@')[0].split('|').filter(x => process.argv[1].includes(x)).length != 0) {
let pinarr = i.split('@')[1].split(',');
console.log(`\n❗已配置该任务不执行pin: ${JSON.stringify(pinarr)}`);
for (let j of pinarr) {
j = decodeURIComponent(j);
CookieJDs = CookieJDs.filter(x => !x.includes(encodeURIComponent(j)));
}
}
}
} else {
let pinarr = banpin.split(',');
console.log(`\n❗已配置全部任务不执行pin: ${JSON.stringify(pinarr)}`);
for (let i of pinarr) {
i = decodeURIComponent(i);
CookieJDs = CookieJDs.filter(x => !x.includes(encodeURIComponent(i)));
}
}
} catch { }
}
if (process.env.ALLOWPIN) {
try {
const pin = process.env.ALLOWPIN;
const runck = [];
if (pin.includes('@')) {
const arr = pin.split('&');
for (let i of arr) {
//if (process.mainModule.filename.includes(i.split('^')[0])) {
if (i.split('@')[0].split('|').filter(x => process.argv[1].includes(x)).length != 0) {
let pinarr = i.split('@')[1].split(',');
console.log(`\n❗已配置该任务只执行pin: ${JSON.stringify(pinarr)}`);
for (let j of pinarr) {
j = decodeURIComponent(j);
runck.push(...CookieJDs.filter(x => x.includes(encodeURIComponent(j))));
}
}
}
} else {
let pinarr = pin.split(',');
console.log(`\n❗已配置全部任务只执行pin: ${JSON.stringify(pinarr)}`);
for (let i of pinarr) {
i = decodeURIComponent(i);
runck.push(...CookieJDs.filter(x => x.includes(encodeURIComponent(i))));
}
}
if (runck.length > 0) {
CookieJDs = runck
}
} catch { }
}
console.log(`\n====================共${CookieJDs.length}个京东账号Cookie=================`);
console.log(`===========脚本执行时间:${formatdate(new Date(new Date().getTime() + new Date().getTimezoneOffset() * 60 * 1000 + 8 * 60 * 60 * 1000))}============`);
console.log('>>>>>>>>>>>>6dylan6提醒您:有问题先更新不行在反馈>>>>>>>>>>>>>\n');
console.log(`Tips:‼️青龙2.20.2以下版本不要外网访问,已被爆破可任意登录!必须要外网的就全新安装新版吧,升级不行\n`);
console.log('>>>>>>>>>>>>6Dy提醒您:有问题先更新不行在反馈>>>>>>>>>>>>>\n');
for (let i = 0; i < CookieJDs.length; i++) {
if (!CookieJDs[i].match(/pt_pin=(.+?);/) || !CookieJDs[i].match(/pt_key=(.+?);/)) console.log(`\n提示:京东cookie 【${CookieJDs[i]}】填写不规范,可能会影响部分脚本正常使用。正确格式为: pt_key=xxx;pt_pin=xxx;(分号;不可少)\n`);
CookieJDs[i] = CookieJDs[i].replace(/[\u4e00-\u9fa5]/g, (str) => encodeURI(str));
@@ -111,7 +49,6 @@ if (process.env.DP_POOL) {
try {
require("global-agent/bootstrap");
global.GLOBAL_AGENT.HTTP_PROXY = process.env.DP_POOL;
global.GLOBAL_AGENT.NO_PROXY = process.env.NO_PROXY || '127.0.0.1,localhost';
console.log(`\n---------------使用代理池模式---------------\n`);
} catch {
throw new Error(`请安装global-agent依赖,才能启用代理!`);
+1 -1
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+2663 -3
View File
File diff suppressed because one or more lines are too long
+766 -4
View File
File diff suppressed because one or more lines are too long
-3
View File
@@ -114,10 +114,7 @@ async function bean() {
}
}
} else {
// 完全无数据时才抛出异常,否则返回之前统计出来的数据
if (!todayArr.length && !yesterdayArr.length) {
$.errorMsg = `数据异常`;
}
// $.msg($.name, ``, `账号${$.index}${$.nickName}\n${$.errorMsg}`);
t = 1;
}
+15 -36
View File
@@ -1,19 +1,18 @@
# !/usr/bin/env python3
# -*- coding: utf-8 -*-
# Modify : 2024/4/21
# Modify : 2022/9/30
# 京豆近7天输出表格统计
# 用不着每天跑,定时自行设置吧,配合desi可指定账号
# https://raw.githubusercontent.com/6dylan6/jdpro/main/jd_beans_7days.py
'''
new Env('豆子7天统计');
8 8 29 2 * jd_beans_7days.py
8 8 30 9 * jd_beans_7days.py
'''
import requests
import datetime
import random
import os,re,sys,json,time
from urllib.parse import unquote,quote
from urllib.parse import unquote
from datetime import timedelta
from datetime import timezone
@@ -32,23 +31,7 @@ session = requests.session()
session.keep_alive = False
url = "https://api.m.jd.com/api"
def getua():
global uuid,addressid,iosVer,iosV,clientVersion,iPhone,area,ADID,lng,lat
uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40))
addressid = ''.join(random.sample('1234567898647', 10))
iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1))
iosV = iosVer.replace('.', '_')
clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1))
iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1))
area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4))
ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12))
lng='119.31991256596'+str(random.randint(100,999))
lat='26.1187118976'+str(random.randint(100,999))
UserAgent=''
if not UserAgent:
return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1'
else:
return UserAgent
def gen_body(page):
body = {
"beginDate": datetime.datetime.utcnow().replace(tzinfo=timezone.utc).astimezone(SHA_TZ).strftime("%Y-%m-%d %H:%M:%S"),
@@ -187,8 +170,8 @@ def get_beans_7days(ck):
day_7 = True
page = 0
headers = {
"Host": "bean.m.jd.com",
"User-Agent": getua(),
"Host": "api.m.jd.com",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2797 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/7986 MicroMessenger/8.0.1840(0x2800003B) Process/appbrand4 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android",
"Content-Type": "application/x-www-form-urlencoded;",
"Cookie": ck,
}
@@ -199,13 +182,11 @@ def get_beans_7days(ck):
beans_out = {key: 0 for key in days}
while day_7:
page = page + 1
url="https://bean.m.jd.com/beanDetail/detail.json?page="+str(page)
data='body='+quote(str({"pageSize":"20","page":str(page)}))+'&appid=ld'
resp = session.post(url, headers=headers, data=data ,timeout=1000).text
url="https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail&body=%7B%22pageSize%22%3A%2220%22%2C%22page%22%3A%22"+str(page)+"%22%7D&appid=ld"
resp = session.get(url, headers=headers, timeout=1000).text
res = json.loads(resp)
if res['code'] == '0' :
for i in res['jingDetailList']:
for i in res['detailList']:
for date in days:
if str(date) in i['date'] and int(i['amount']) > 0:
beans_in[str(date)] = beans_in[str(date)] + int(i['amount'])
@@ -218,7 +199,6 @@ def get_beans_7days(ck):
else:
print("未获取到数据,原因未知!!\n")
return {'code': 400, 'data': res}
#print(beans_in, beans_out, days)
return {'code': 200, 'data': [beans_in, beans_out, days]}
except Exception as e:
print(str(e))
@@ -228,17 +208,16 @@ def get_beans_7days(ck):
def get_total_beans(ck):
try:
headers = {
"Host": "me-api.jd.com",
"User-Agent": getua(),
"Host": "wq.jd.com",
"User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
"Content-Type": "application/x-www-form-urlencoded;",
"Cookie": ck,
#"Referer": 'https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2'
"Referer": 'https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2'
}
jurl = "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion"
resp = requests.get(jurl, headers=headers).text
jurl = "https://wq.jd.com/user/info/QueryJDUserInfo?sceneval=2"
resp = requests.post(jurl, headers=headers).text
res = json.loads(resp)
#print(res)
return res['data']['assetInfo']['beanNum']
return res['base']['jdNum']
except Exception as e:
printf(str(e))
-7
View File
File diff suppressed because one or more lines are too long
+18
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+303
View File
File diff suppressed because one or more lines are too long
+47 -1
View File
File diff suppressed because one or more lines are too long
-6
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+207
View File
File diff suppressed because one or more lines are too long
-6
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+12
View File
File diff suppressed because one or more lines are too long
-5
View File
File diff suppressed because one or more lines are too long
-15
View File
File diff suppressed because one or more lines are too long
-9
View File
File diff suppressed because one or more lines are too long
-25
View File
File diff suppressed because one or more lines are too long
+31
View File
File diff suppressed because one or more lines are too long
+294 -4
View File
File diff suppressed because one or more lines are too long
+7
View File
File diff suppressed because one or more lines are too long
+20
View File
File diff suppressed because one or more lines are too long
+12
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+20 -5
View File
File diff suppressed because one or more lines are too long
+20 -3
View File
File diff suppressed because one or more lines are too long
+13
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+22
View File
File diff suppressed because one or more lines are too long
+2 -2
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+10
View File
File diff suppressed because one or more lines are too long
+13
View File
File diff suppressed because one or more lines are too long
+10
View File
File diff suppressed because one or more lines are too long
+427
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
-8
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
#依赖安装,运行一次就好
#0 8 5 5 * jd_indeps.sh
#new Env('依赖安装');
#
npm_ver=`pnpm -v|awk -F. '{print $1}'`
if [[ $npm_ver -ge 7 ]];then
export PNPM_HOME="/root/.local/share/pnpm"
export PATH="$PNPM_HOME:$PATH"
fi
echo -e "安装脚本所需依赖,不一定一次全部安装成功,请自己检查\n"
echo -e "开始安装............\n"
#apk add g++ make pixman-dev pango-dev cairo-dev pkgconf --no-cache
apk add g++ make --no-cache
pnpm config set registry https://registry.npm.taobao.org
pnpm install -g
pnpm install -g ds
pnpm install -g png-js
pnpm install -g date-fns
pnpm install -g axios@0.27.2
pnpm install -g crypto-js
pnpm install -g ts-md5
pnpm install -g tslib
pnpm install -g @types/node
pnpm install -g request
pnpm install -g jsdom
pnpm install -g moment
pnpm install -g cheerio
pnpm install -g tough-cookie
pnpm install -g https-proxy-agent
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ jieba
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple/ requests
rm -rf /usr/local/pnpm-global/5/node_modules/.pnpm/canvas*
rm -rf /root/.local/share/pnpm/global/5/.pnpm/canvas*
echo -e "\n所需依赖安装完成,请检查有没有报错,可尝试再次运行"
+328
View File
File diff suppressed because one or more lines are too long
+7
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+12
View File
File diff suppressed because one or more lines are too long
+9
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -2
View File
File diff suppressed because one or more lines are too long
+11
View File
File diff suppressed because one or more lines are too long
+10
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
+213
View File
File diff suppressed because one or more lines are too long
+178
View File
@@ -0,0 +1,178 @@
/*
京东快递
@Leaf
*/
const $ = new Env('京东快递');
const got = require('got');
const envSplitor = ['&','\n','@']
const ckNames = ['JD_COOKIE']
const MAX_THREAD = parseInt(process.env['jd_jdkd_thread']) || 5
const DEFAULT_TIMEOUT=8000, DEFAULT_RETRY=3;
const default_UA = 'Mozilla/5.0 (iPhone; CPU iPhone OS 15_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 MicroMessenger/8.0.31(0x18001f2f) NetType/WIFI Language/zh_CN miniProgram/wx73247c7819d61796'
const Referer = 'https://jingcai-h5.jd.com/'
const Origin = 'https://jingcai-h5.jd.com'
const client = got.extend({
headers:{
Connection:'keep-alive',
'User-Agent': default_UA,
Referer,
Origin,
AppParams: JSON.stringify({"appid":158,"ticket_type":"m"}),
ClientInfo: JSON.stringify({"appName":"jingcai","client":"m"}),
'LOP-DN': 'jingcai.jd.com',
'X-Requested-With': 'XMLHttpRequest',
},
retry: {limit:0},
timeout: DEFAULT_TIMEOUT,
followRedirect: false,
})
class BasicClass{constructor(){this.index=$.userIdx++;this.name='';} log(msg,opt={}){var m='',n=$.userCount.toString().length;;if(this.index)m+=`账号[${$.padStr(this.index,n)}]`;if(this.name)m+=`[${this.name}]`;$.log(m+msg,opt);} async request(opt){var resp=null,count=0;var fn=opt.fn||opt.url;opt.method=opt?.method?.toUpperCase()||'GET';while(count++<DEFAULT_RETRY){try{await client(opt).then(t=>{resp=t},e=>{resp=e.response});if(((resp?.statusCode/100)|0)<=4)break;}catch(e){if(e.name=='TimeoutError'){this.log(`[${fn}]请求超时,重试第${count}`);}else{this.log(`[${fn}]请求错误(${e.message}),重试第${count}`);}};} if(resp==null)return Promise.resolve({statusCode:-1,headers:null,result:null});let{statusCode,headers,body}=resp;if(body)try{body=JSON.parse(body);}catch{};return Promise.resolve({statusCode,headers,result:body})}}
let http = new BasicClass();
class UserClass extends BasicClass {
constructor(ck) {
super()
this.cookie = ck
this.pt_pin = ck.match(/pin=([\w\-\%]+)/) ? ck.match(/pin=([\w\-\%]+)/)[1] : ''
this.name = decodeURIComponent(this.pt_pin)
}
async queryTaskList() {
try {
let options = {
fn: 'queryTaskList',
method: 'post',
url: 'https://lop-proxy.jd.com/ESGApi/queryTaskList',
headers: {Cookie:this.cookie,'event-id':$.randomPattern('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx')},
json: [{"pin":"$cooMrdGatewayUid$"}],
}
let {result} = await this.request(options)
let code = result?.code
if(code == 1) {
for(let task of (result?.content?.taskInfoList||[]).filter(x => x.taskReachNum < x.taskNeedReachNum && x.triggerType==1)) {
await this.reachTaskInfo(task);
await $.wait(1000);
break;
}
} else {
let errCode = code || result?.error_response?.code
let errMsg = result?.msg || result?.error_response?.zh_desc
this.log(`查询任务列表出错[${errCode}]: ${errMsg}`)
}
} catch (e) {
$.log(e)
} finally {
return Promise.resolve()
}
}
async reachTaskInfo(task) {
try {
let options = {
fn: 'reachTaskInfo',
method: 'post',
url: 'https://lop-proxy.jd.com/ESGApi/reachTaskInfo',
headers: {Cookie:this.cookie,'event-id':$.randomPattern('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx')},
json: [{
taskNo: task.taskNo,
childTaskId: task.childTaskId,
pin: "$cooMrdGatewayUid$",
}],
}
let {result} = await this.request(options)
let code = result?.code
if(code == 1) {
this.log(`完成任务[${task.taskTitle}]成功`);
await $.wait(1000);
await this.queryTaskList();
} else {
let errCode = code || result?.error_response?.code
let errMsg = result?.msg || result?.error_response?.zh_desc
this.log(`完成任务[${task.taskTitle}]失败[${errCode}]: ${errMsg}`)
}
} catch (e) {
$.log(e)
} finally {
return Promise.resolve()
}
}
async queryCanGetRewardTaskList() {
try {
let options = {
fn: 'queryCanGetRewardTaskList',
method: 'post',
url: 'https://lop-proxy.jd.com/ESGApi/queryCanGetRewardTaskList',
headers: {Cookie:this.cookie,'event-id':$.randomPattern('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx')},
json: [{"pin":"$cooMrdGatewayUid$"}],
}
let {result} = await this.request(options)
let code = result?.code
if(code == 1) {
for(let item of (result?.content?.personalCarbonRewardRespDtoList||[])) {
await this.operationPersonalCarbonIntegral(item)
}
} else {
let errCode = code || result?.error_response?.code
let errMsg = result?.msg || result?.error_response?.zh_desc
this.log(`查询可领取奖励出错[${errCode}]: ${errMsg}`)
}
} catch (e) {
$.log(e)
} finally {
return Promise.resolve()
}
}
async operationPersonalCarbonIntegral(item) {
try {
let options = {
fn: 'operationPersonalCarbonIntegral',
method: 'post',
url: 'https://lop-proxy.jd.com/ESGApi/operationPersonalCarbonIntegral',
headers: {Cookie:this.cookie,'event-id':$.randomPattern('xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx')},
json: [{
type: 2,
operationType: 1,
rewardNo: item.rewardNo,
taskNo: item.taskNo,
pin: "$cooMrdGatewayUid$",
}],
}
let {result} = await this.request(options)
let code = result?.code
if(code == 1) {
this.log(`收取[${item.taskTitle}]奖励成功, 现在有${result?.content?.carbonIntegral}g能量`)
} else {
let errCode = code || result?.error_response?.code
let errMsg = result?.msg || result?.error_response?.zh_desc
this.log(`收取[${item.taskTitle}]奖励失败[${errCode}]: ${errMsg}`)
}
} catch (e) {
$.log(e)
} finally {
return Promise.resolve()
}
}
async userTask() {
await this.queryTaskList();
await this.queryCanGetRewardTaskList();
}
}
!(async () => {
$.read_env(UserClass);
await $.threadTask('userTask',MAX_THREAD)
})()
.catch((e) => $.log(e))
.finally(() => $.exitNow())
function Env(name){return new class{constructor(name){this.name=name;this.startTime=Date.now();this.log(`[${this.name}]开始运行\n`,{time:true});this.notifyStr=[];this.notifyFlag=true;this.userIdx=0;this.userList=[];this.userCount=0;} log(msg,options={}){let opt={console:true};Object.assign(opt,options);if(opt.time){let fmt=opt.fmt||'hh:mm:ss';msg=`[${this.time(fmt)}]`+msg;} if(opt.notify)this.notifyStr.push(msg);if(opt.console)console.log(msg);} read_env(Class){let envStrList=ckNames.map(x=>process.env[x]);for(let env_str of envStrList.filter(x=>!!x)){let sp=envSplitor.filter(x=>env_str.includes(x));let splitor=sp.length>0?sp[0]:envSplitor[0];for(let ck of env_str.split(splitor).filter(x=>!!x)){this.userList.push(new Class(ck));}} this.userCount=this.userList.length;if(!this.userCount){this.log(`未找到变量,请检查变量${ckNames.map(x => '['+x+']').join('或')}`,{notify:true});return false;} this.log(`共找到${this.userCount}个账号`);return true;} async threads(taskName,conf,opt={}){while(conf.idx<$.userList.length){let user=$.userList[conf.idx++];await user[taskName](opt);}} async threadTask(taskName,thread){let taskAll=[];let taskConf={idx:0};while(thread--)taskAll.push(this.threads(taskName,taskConf));await Promise.all(taskAll);} time(t,x=null){let xt=x?new Date(x):new Date;let e={"M+":xt.getMonth()+1,"d+":xt.getDate(),"h+":xt.getHours(),"m+":xt.getMinutes(),"s+":xt.getSeconds(),"q+":Math.floor((xt.getMonth()+3)/3),S:this.padStr(xt.getMilliseconds(),3)};/(y+)/.test(t)&&(t=t.replace(RegExp.$1,(xt.getFullYear()+"").substr(4-RegExp.$1.length)));for(let s in e)new RegExp("("+s+")").test(t)&&(t=t.replace(RegExp.$1,1==RegExp.$1.length?e[s]:("00"+e[s]).substr((""+e[s]).length)));return t;} async showmsg(){if(!this.notifyFlag)return;if(!this.notifyStr.length)return;var notify=require('./sendNotify');this.log('\n============== 推送 ==============');await notify.sendNotify(this.name,this.notifyStr.join('\n'));} padStr(num,length,opt={}){let padding=opt.padding||'0';let mode=opt.mode||'l';let numStr=String(num);let numPad=(length>numStr.length)?(length-numStr.length):0;let pads='';for(let i=0;i<numPad;i++){pads+=padding;} if(mode=='r'){numStr=numStr+pads;}else{numStr=pads+numStr;} return numStr;} json2str(obj,c,encode=false){let ret=[];for(let keys of Object.keys(obj).sort()){let v=obj[keys];if(v&&encode)v=encodeURIComponent(v);ret.push(keys+'='+v);} return ret.join(c);} str2json(str,decode=false){let ret={};for(let item of str.split('&')){if(!item)continue;let idx=item.indexOf('=');if(idx==-1)continue;let k=item.substr(0,idx);let v=item.substr(idx+1);if(decode)v=decodeURIComponent(v);ret[k]=v;} return ret;} randomPattern(pattern,charset='abcdef0123456789'){let str='';for(let chars of pattern){if(chars=='x'){str+=charset.charAt(Math.floor(Math.random()*charset.length));}else if(chars=='X'){str+=charset.charAt(Math.floor(Math.random()*charset.length)).toUpperCase();}else{str+=chars;}} return str;} randomString(len,charset='abcdef0123456789'){let str='';for(let i=0;i<len;i++){str+=charset.charAt(Math.floor(Math.random()*charset.length));} return str;} randomList(a){let idx=Math.floor(Math.random()*a.length);return a[idx];} wait(t){return new Promise(e=>setTimeout(e,t));} async exitNow(){await this.showmsg();let e=Date.now();let s=(e-this.startTime)/1000;this.log('');this.log(`[${this.name}]运行结束,共运行了${s}`,{time:true});process.exit(0);}} (name)}
-7
View File
File diff suppressed because one or more lines are too long
-7
View File
File diff suppressed because one or more lines are too long
-6
View File
File diff suppressed because one or more lines are too long
+13
View File
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More