#!/usr/bin/python | |
# -*- coding: utf-8 -*- | |
""" | |
@author: Nzix | |
""" | |
import os, shutil, platform, subprocess | |
import re, zipfile, json | |
import ssl | |
ssl._create_default_https_context = ssl._create_unverified_context | |
try: | |
import urllib.request as urllib | |
except: | |
import urllib | |
shell = lambda command, cwd = None: subprocess.Popen(command, shell = True, stdout = subprocess.PIPE, cwd = cwd).stdout.read().decode().strip() | |
installation = '' | |
possibilities = [] | |
electron_temp = 'electron.temp.zip' | |
system = {'Windows': 'win32', 'Linux': 'linux', 'Darwin': 'darwin'}[platform.system()] | |
cli = {'win32': 'bin', 'linux': 'bin', 'darwin': 'Contents/Resources/app/bin'} | |
lib = {'win32': 'ffmpeg.dll', 'linux': 'libffmpeg.so', 'darwin': 'Electron.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libffmpeg.dylib'} | |
if system == 'win32': | |
if 'PROGRAMW6432' in os.environ: | |
possibilities.append(os.environ['PROGRAMW6432']) | |
if 'PROGRAMFILES(X86)' in os.environ: | |
possibilities.append(os.environ['PROGRAMFILES(X86)']) | |
if 'PROGRAMFILES' in os.environ: | |
possibilities.append(os.environ['PROGRAMFILES']) | |
if 'LOCALAPPDATA' in os.environ: | |
possibilities.append(os.path.join(os.environ['LOCALAPPDATA'], 'Programs')) | |
possibilities = [os.path.join(path, 'Microsoft VS Code') for path in possibilities] | |
where_code = shell('where code 2> nul').split('\r\n')[0] | |
if where_code: | |
possibilities.append(os.path.abspath(os.path.join(os.path.realpath(where_code), os.path.pardir, os.path.pardir))) | |
elif system == 'linux': | |
which_code = shell('which code') | |
if which_code: | |
possibilities.append(os.path.abspath(os.path.join(os.path.realpath(which_code), os.path.pardir, os.path.pardir))) | |
elif system == 'darwin': | |
application = '/Applications/Visual Studio Code.app' | |
if os.path.exists(application): | |
possibilities.append(application) | |
if not installation: | |
possibilities = list(set(possibilities)) | |
for path in possibilities: | |
if os.path.exists(path): | |
installation = path | |
break | |
assert installation | |
vscode_version = shell(('./' if system != 'win32' else '') + 'code -v --user-data-dir="."', os.path.join(installation, cli[system])).split() | |
print('vscode {version} {arch}'.format(version = vscode_version[0], arch = vscode_version[-1])) | |
try: | |
with open(os.path.join(installation, 'resources', 'app', 'package.json'), 'r') as f: package_json = json.loads(f.read()) | |
electron_version = package_json['devDependencies']['electron'] | |
except: | |
yarnrc = urllib.urlopen('https://raw.githubusercontent.com/Microsoft/vscode/{version}/.yarnrc'.format(version = vscode_version[0])).read().decode() | |
electron_version = re.search(r'target "([^"]+)"', yarnrc).group(1) | |
print('electron {version}'.format(version = electron_version)) | |
urllib.urlretrieve('https://npm.taobao.org/mirrors/electron/{version}/electron-v{version}-{system}-{arch}.zip'.format(version = electron_version, system = system, arch = vscode_version[-1]), electron_temp) | |
print('download well') | |
local_lib = os.path.join(installation, lib[system].replace('Electron.app', '.')) | |
os.remove(local_lib) | |
try: | |
with zipfile.ZipFile(electron_temp) as z: | |
with z.open(lib[system]) as src, open(local_lib, 'wb') as dst: | |
shutil.copyfileobj(src, dst) | |
print('replace done') | |
except Exception as error: | |
print(error) | |
finally: | |
if os.path.exists(electron_temp): | |
os.remove(electron_temp) | |
print('remove temp') |
This comment has been minimized.
This comment has been minimized.
Powershell Invoke-RestMethod https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python |
This comment has been minimized.
This comment has been minimized.
我用这个脚本报错了: curl https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python
vscode 1.36.1 x64
Traceback (most recent call last):
File "<stdin>", line 58, in <module>
AttributeError: 'NoneType' object has no attribute 'group' |
This comment has been minimized.
This comment has been minimized.
@u3u |
This comment has been minimized.
This comment has been minimized.
这个可以访问 试过很多次了 还是这个错 curl https://raw.githubusercontent.com/Microsoft/vscode/1.36.1/.yarnrc
disturl "https://atom.io/download/electron"
target "4.2.5"
runtime "electron" |
This comment has been minimized.
This comment has been minimized.
和 Python 版本有关系吗? python --version
Python 2.7.16 |
This comment has been minimized.
This comment has been minimized.
@u3u
把 |
This comment has been minimized.
This comment has been minimized.
不知道为啥,好像是 # https://raw.githubusercontent.com/Microsoft/vscode/1.36.1/.yarnrc
yarnrc = urllib.urlopen('https://raw.githubusercontent.com/Microsoft/vscode/{version}/.yarnrc'.format(version = vscode_version[0])).read().decode()
print(type(yarnrc)) # <type 'unicode'>
print(len(yarnrc)) # 0 |
This comment has been minimized.
This comment has been minimized.
@u3u |
This comment has been minimized.
This comment has been minimized.
QAQ 我手动把脚本的 |
This comment has been minimized.
This comment has been minimized.
使用自动替代脚本的时候出现如下错误 |
This comment has been minimized.
This comment has been minimized.
Hello @nondanee, I installed vscode to a non-standard directory so I was unable to use the script. Thank you very much for your excellent work on the extension. It's life-saving. |
This comment has been minimized.
This comment has been minimized.
@yunyoulu I will update this script soon. |
This comment has been minimized.
This comment has been minimized.
@tw7613781 sudo su
curl https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
mac 没声音 |
This comment has been minimized.
This comment has been minimized.
same here. 可以正常播放,但是没有声音。 |
This comment has been minimized.
This comment has been minimized.
已经在修理啦。你可以在这个issue下跟进。nondanee/vsc-netease-music#110 |
This comment has been minimized.
This comment has been minimized.
@yingjun2 |
This comment has been minimized.
Shell
curl https://gist.githubusercontent.com/nondanee/f157bbbccecfe29e48d87273cd02e213/raw | python