5 Commits
1.0.0 ... main

Author SHA1 Message Date
Majjcom
2f6f20db02 Update README.md 2023-02-11 19:06:08 +08:00
Majjcom
c5a0a7451e Update README.md 2022-06-24 19:06:21 +08:00
Majjcom
8102ebdb47 Update README.md 2022-06-24 18:59:37 +08:00
Majjcom
5fb37056aa 1.2.0
- auto set max thread count
2022-02-27 15:12:38 +08:00
Majjcom
50e07068c9 1.1.0 2022-02-01 19:36:38 +08:00
2 changed files with 30 additions and 8 deletions

View File

@@ -2,12 +2,25 @@
解锁网易云ncm文件
## 特色
使用多线程进行解锁,速度更快
- 使用多线程进行解锁,速度更快
**现在推荐使用解密速度更快的[ncmpp](https://github.com/Majjcom/ncmpp)和[ncmppGui](https://github.com/Majjcom/ncmppGui)**
## 使用
在音乐目录下运行代码将自动解锁该目录下的所有ncm文件并存放在`./unlock`目录下
#### 快速使用
下载 `Latest Release` 中的可执行文件,将其放在存放 `ncm` 文件的目录下,然后运行应用即可开始解锁
解锁后的音频文件存放在 `./unlock` 目录下
------
## 注意
你可以使用release中提供的exe文件运行也可以直接使用源代码文件运行程序
- 使用源代码文件时,请确保你的控制台运行目录与待解锁文件目录相同

View File

@@ -1,4 +1,5 @@
# -*- coding: utf-8 -*-
from multiprocessing import cpu_count
import threading
import binascii
import struct
@@ -78,7 +79,7 @@ def dump(file_path):
return file_name
class dumper(threading.Thread):
class Dumper(threading.Thread):
def __init__(self, fpath, basket):
super().__init__()
self._fpath = fpath
@@ -119,9 +120,7 @@ def printBar(now:int, total:int, threads:int):
print(bar_text, end='', flush=True)
if __name__ == '__main__':
if not os.path.exists('./unlock'):
os.mkdir('./unlock')
def main():
dirs = os.listdir()
musicFiles = dict()
for i in dirs:
@@ -129,18 +128,24 @@ if __name__ == '__main__':
if os.path.splitext(i)[1] == '.ncm':
musicFiles[os.path.abspath(i)] = 0
totalCount = len(musicFiles)
if totalCount == 0:
print('\033[33m未找到需要解密的文件 nothing to do...\033[0m')
input('按下回车继续...')
return
process = [0, 0, 0]
if not os.path.exists('./unlock'):
os.mkdir('./unlock')
maxCount = cpu_count()
while True:
count = 0
tmp = None
for key in musicFiles:
if musicFiles[key] == 1:
count += 1
if count < 5 and musicFiles[key] == 0:
if count < maxCount and musicFiles[key] == 0:
upperPrint('解密中...\t{}'.format(key))
musicFiles[key] = 1
tmp = dumper(key, musicFiles)
tmp.start()
Dumper(key, musicFiles).start()
count += 1
fcount = 0
for key in musicFiles:
@@ -154,3 +159,7 @@ if __name__ == '__main__':
print('\n\033[32m解密完成存放在unlock目录中\033[0m')
input('按下回车继续...')
if __name__ == '__main__':
main()