├── .gitignore ├── README.md ├── SS-SSR-V2RAY.sln └── SS-SSR-V2RAY ├── .vscode ├── launch.json └── settings.json ├── ReName.py ├── Renames.py ├── SS-SSR-V2RAY.pyproj ├── SS-SSR-V2RAY.pyproj.user ├── SS ├── Main.py ├── SS.txt └── Scrapy_SS.py ├── SSR ├── Main.py ├── SSRLink.txt ├── SSRSub.txt └── Scrapy_SSR.py ├── V2RAY ├── Main.py ├── Scrapy_V2ray.py ├── V2RAYLink.txt └── V2RAYSub.txt └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。 3 | ################################################################################ 4 | 5 | /.vs/SS-SSR-V2RAY/v16/.suo 6 | /SS-SSR-V2RAY/env 7 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 订阅地址或链接都在指定项目下 此项目作废 2 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio Version 16 4 | VisualStudioVersion = 16.0.29911.84 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{888888A0-9F3D-457C-B088-3A5042F75D52}") = "SS-SSR-V2RAY", "SS-SSR-V2RAY\SS-SSR-V2RAY.pyproj", "{7DA8A46D-4214-486F-A9E8-27AA593F38D2}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|Any CPU = Debug|Any CPU 11 | Release|Any CPU = Release|Any CPU 12 | EndGlobalSection 13 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 14 | {7DA8A46D-4214-486F-A9E8-27AA593F38D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 15 | {7DA8A46D-4214-486F-A9E8-27AA593F38D2}.Release|Any CPU.ActiveCfg = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | GlobalSection(ExtensibilityGlobals) = postSolution 21 | SolutionGuid = {15EE668F-878B-404C-B870-67B39AAE4217} 22 | EndGlobalSection 23 | EndGlobal 24 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | // 使用 IntelliSense 了解相关属性。 3 | // 悬停以查看现有属性的描述。 4 | // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 5 | "version": "0.2.0", 6 | "configurations": [ 7 | { 8 | "name": "Python: 当前文件", 9 | "type": "python", 10 | "request": "launch", 11 | "program": "${file}", 12 | "console": "integratedTerminal" 13 | } 14 | ] 15 | } -------------------------------------------------------------------------------- /SS-SSR-V2RAY/.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "python.formatting.provider": "yapf" 3 | } -------------------------------------------------------------------------------- /SS-SSR-V2RAY/ReName.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | def reName(dirname): 5 | for category in os.listdir(dirname): 6 | filename = os.path.splitext(category)[0] 7 | filetype = os.path.splitext(category)[1] 8 | odir = dirname + "\\" + category 9 | if filename.startswith('000'): 10 | filename = str.replace(filename, "000", '') 11 | if int(filename) < 10: 12 | filename = '0' + filename 13 | fullname = "\\" + filename + filetype 14 | ndir = dirname + fullname 15 | os.rename(odir, ndir) 16 | else: 17 | if int(filename) < 10: 18 | filename = '0' + filename 19 | fullname = "\\" + filename + filetype 20 | ndir = dirname + fullname 21 | os.rename(odir, ndir) 22 | 23 | 24 | if __name__ == '__main__': 25 | while 1: 26 | dirname = str(input('请输入地址')) 27 | if dirname == 'quit': 28 | break 29 | else: 30 | reName(dirname) 31 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/Renames.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | 4 | def rename(param, **Type): 5 | Img = 0 6 | File = 0 7 | Other = 0 8 | for parent_item in os.listdir(param): 9 | child_dir = os.path.join(param, parent_item) 10 | '''判断是否存在子目录 11 | 不存在 12 | ''' 13 | if not os.path.isdir(child_dir): 14 | file_type = os.path.splitext(parent_item)[1] 15 | if file_type in Type[list(Type)[0]]: 16 | Img = Img + 1 17 | new_name = 'Image_{0}{1}'.format(Img, file_type) 18 | elif file_type in Type[list(Type)[1]]: 19 | File = File + 1 20 | new_name = 'File_{0}{1}'.format(File, file_type) 21 | else: 22 | Other = Other + 1 23 | new_name = '_{0}{1}'.format(Other, file_type) 24 | os.rename(child_dir, os.path.join(param, new_name)) 25 | # 存在 26 | else: 27 | new_dir = os.listdir(os.path.join(param, parent_item)) 28 | for child_item in new_dir: 29 | reg = os.path.join(os.path.join(param, parent_item), 30 | child_item) 31 | if os.path.isdir(reg): 32 | # 向下递归遍历 33 | rename(reg) 34 | else: 35 | # 向上遍历 36 | file_type = os.path.splitext(child_item)[1] 37 | if file_type in Type[list(Type)[0]]: 38 | Img = Img + 1 39 | new_name = 'Image_{0}{1}'.format(Img, file_type) 40 | elif file_type in Type[list(Type)[1]]: 41 | File = File + 1 42 | new_name = 'File_{0}{1}'.format(File, file_type) 43 | else: 44 | Other = Other + 1 45 | new_name = '_{0}{1}'.format(Other, file_type) 46 | os.rename(os.path.join(child_dir, child_item), 47 | os.path.join(child_dir, new_name)) 48 | 49 | 50 | if __name__ == "__main__": 51 | while 1: 52 | # D:\一级目录 53 | # D:\一级目录\二级目录 54 | file_type = { 55 | "Img": [".jpg", ".png", ".gif", ".webp", ".bmp", ".tif"], 56 | "txt": [".txt", ".ini", ".log", ".json", ".reg"] 57 | } 58 | path = str(input("请输入需要重命名的磁盘路径地址:")) 59 | rename(path, **file_type) 60 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SS-SSR-V2RAY.pyproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | Debug 4 | 2.0 5 | 7da8a46d-4214-486f-a9e8-27aa593f38d2 6 | . 7 | SS\Main.py 8 | 9 | 10 | . 11 | . 12 | SS-SSR-V2RAY 13 | SS-SSR-V2RAY 14 | 15 | 16 | 17 | 18 | true 19 | false 20 | 21 | 22 | true 23 | false 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SS-SSR-V2RAY.pyproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | ProjectFiles 5 | 6 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SS/Main.py: -------------------------------------------------------------------------------- 1 | from Scrapy_SS import SS 2 | 3 | if __name__ == "__main__": 4 | res = SS() 5 | lists = res.GetHtmlText() 6 | byte = res.QrCode(lists) 7 | res.SaveFile(byte) 8 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SS/SS.txt: -------------------------------------------------------------------------------- 1 | ss://YWVzLTI1Ni1nY206QHVzYS4xc3MuZnVuOgo= 2 | ss://YWVzLTI1Ni1nY206QHVzYi4xc3MuZnVuOgo= 3 | ss://YWVzLTI1Ni1nY206QHVzYy4xc3MuZnVuOgo= 4 | ss://YWVzLTI1Ni1nY206QHVzZC4xc3MuZnVuOgo= 5 | ss://YWVzLTI1Ni1nY206QHVzZS4xc3MuZnVuOgo= 6 | ss://YWVzLTI1Ni1nY206QHVzZi4xc3MuZnVuOgo= 7 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SS/Scrapy_SS.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import re 3 | import base64 4 | import pyzbar.pyzbar as pyzbar 5 | from PIL import Image 6 | 7 | class SS(object): 8 | def __init__(self): 9 | self = self 10 | 11 | def GetHtmlText(self): 12 | ImgPath = [] 13 | SSURL = "https://ss.freess.info/#portfolio-preview" 14 | headers = { 15 | 'User-Agent': 16 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' 17 | } 18 | result = requests.get(SSURL, headers=headers).text 19 | res = re.findall(r'\"data:(.*?)\"', result) 20 | count = 0 21 | for item in res: 22 | count = count + 1 23 | data = item.split(',')[1] 24 | img = base64.urlsafe_b64decode(data + '=' * 25 | (4 - len(data) % 4)) 26 | ImgPath.append('SS/' + str(count) + '.png') 27 | fw = open('SS/' + str(count) + '.png', 'wb') 28 | fw.write(img) 29 | fw.close() 30 | return ImgPath 31 | 32 | def QrCode(self, ImgPath): 33 | codebytes = [] 34 | for item in ImgPath: 35 | pic = Image.open(item) 36 | codeinfos = pyzbar.decode(pic) 37 | for codeinfo in codeinfos: 38 | datainfo = codeinfo.data.decode('utf-8') 39 | codebytes.append(datainfo) 40 | return codebytes 41 | 42 | def SaveFile(self, bytes): 43 | with open('SS/SS.txt', 'r+', encoding='utf-8') as f: 44 | f.seek(0) 45 | f.truncate() 46 | with open('SS/SS.txt', 'a', encoding='utf-8') as f: 47 | for data in bytes: 48 | f.write(data) 49 | f.write('\n') 50 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SSR/Main.py: -------------------------------------------------------------------------------- 1 | from Scrapy_SSR import SSR 2 | 3 | if __name__ == "__main__": 4 | ssr = SSR() 5 | SSRURL = ssr.GetHtmlText() 6 | ssr.SaveFileSub(SSRURL) 7 | ssr.SaveFileLink(SSRURL) -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SSR/SSRLink.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmilyEdna/SS-SSR-V2RAY/eee13e0c778c449668cac5298a7e2946b025e157/SS-SSR-V2RAY/SSR/SSRLink.txt -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SSR/SSRSub.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/EmilyEdna/SS-SSR-V2RAY/eee13e0c778c449668cac5298a7e2946b025e157/SS-SSR-V2RAY/SSR/SSRSub.txt -------------------------------------------------------------------------------- /SS-SSR-V2RAY/SSR/Scrapy_SSR.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import re 3 | import base64 4 | 5 | class SSR(object): 6 | def __init__(self): 7 | self = self 8 | 9 | def GetHtmlText(self): 10 | SSRArr = [] 11 | SSURL = "https://free.ishadowx.biz/" 12 | headers = { 13 | 'User-Agent': 14 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' 15 | } 16 | Html = requests.get(SSURL, headers=headers).text.replace('\r', 17 | '').replace( 18 | '\n', '') 19 | data = re.findall( 20 | r'
(.*?)
', Html) 21 | for item in data: 22 | ip = re.findall(r'(.*?)', item) 23 | port = re.findall(r'(.*?)', item) 24 | pwd = re.findall(r'(.*?)', item) 25 | method = re.findall(r'Method:(.*?)<', item) 26 | hashs = re.findall(r'

a(.*?)h

', item) 27 | protocol = 'a' + str.split(hashs[0], ' ')[0] 28 | obfs = str.split(hashs[0], ' ')[1] + 'h' 29 | res = "{ip}:{port}:{protocol}:{method}:{obfs}:{pwdbase64}/?remarks={remarkbase64}".format( 30 | ip=ip[0], 31 | port=port[0], 32 | protocol=protocol, 33 | method=method[0], 34 | obfs=obfs, 35 | pwdbase64=(base64.b64encode(pwd[0].encode())).decode(), 36 | remarkbase64=(base64.b64encode('随便用'.encode())).decode()) 37 | ssrlink = 'ssr://{0}'.format( 38 | (base64.b64encode(res.encode())).decode()) 39 | SSRArr.append(ssrlink) 40 | return SSRArr 41 | 42 | def SaveFileSub(self, SSRURL): 43 | with open('SSR/SSRSub.txt', 'r+', encoding='utf-8') as f: 44 | f.seek(0) 45 | f.truncate() 46 | with open('SSR/SSRSub.txt', 'a', encoding='utf-8') as f: 47 | res = '' 48 | for data in SSRURL: 49 | res = res + data + '\n' 50 | result = (base64.b64encode((res).encode())).decode() 51 | f.write(result) 52 | 53 | def SaveFileLink(self, SSRURL): 54 | with open('SSR/SSRLink.txt', 'r+', encoding='utf-8') as f: 55 | f.seek(0) 56 | f.truncate() 57 | with open('SSR/SSRLink.txt', 'a', encoding='utf-8') as f: 58 | for data in SSRURL: 59 | f.write(data) 60 | f.write('\n') -------------------------------------------------------------------------------- /SS-SSR-V2RAY/V2RAY/Main.py: -------------------------------------------------------------------------------- 1 | from Scrapy_V2ray import V2RAY 2 | 3 | if __name__ == "__main__": 4 | res = V2RAY() 5 | vmess = res.GetHtmlText() 6 | res.SaveFileSub(vmess) 7 | res.SaveFileLink(vmess) 8 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/V2RAY/Scrapy_V2ray.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import re 3 | import base64 4 | 5 | class V2RAY(object): 6 | def __init__(self): 7 | self = self 8 | 9 | def GetHtmlText(self): 10 | vmess = [] 11 | SSURL = "https://my.ishadowx.biz" 12 | headers = { 13 | 'User-Agent': 14 | 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36' 15 | } 16 | result = requests.get(SSURL, headers=headers).text 17 | res = re.findall(r'\"vmess:\W+[a-zA-Z0-9]+\W+\"', result) 18 | for item in res: 19 | item = re.findall(r'vmess:\W+[a-zA-Z0-9]+\W', item) 20 | vmess.append(item[0]) 21 | return vmess 22 | 23 | def SaveFileSub(self, vmess): 24 | with open('V2RAY/V2RAYSub.txt', 'r+', encoding='utf-8') as f: 25 | f.seek(0) 26 | f.truncate() 27 | with open('V2RAY/V2RAYSub.txt', 'a', encoding='utf-8') as f: 28 | for data in vmess: 29 | result = (base64.b64encode((data + '\r\n').encode())).decode() 30 | f.write(result) 31 | 32 | def SaveFileLink(self, vmess): 33 | with open('V2RAY/V2RAYLink.txt', 'r+', encoding='utf-8') as f: 34 | f.seek(0) 35 | f.truncate() 36 | with open('V2RAY/V2RAYLink.txt', 'a', encoding='utf-8') as f: 37 | for data in vmess: 38 | f.write(data) 39 | f.write('\n') -------------------------------------------------------------------------------- /SS-SSR-V2RAY/V2RAY/V2RAYLink.txt: -------------------------------------------------------------------------------- 1 | vmess://eyJhZGQiOiJ2MnVzMDEuaXN4YS50b3AiLCJob3N0IjoiIiwiaWQiOiI0N2U1MWFlOS03MDRhLTQzYjYtYWMzOS1iY2Q2YmJjODQzNzgiLCJuZXQiOiJ3cyIsInBhdGgiOiJcL3JheSIsInBvcnQiOiI0NDMiLCJwcyI6ImlzeC55dC0wMSIsInRscyI6InRscyIsInYiOjIsImFpZCI6MCwidHlwZSI6Im5vbmUifQo= 2 | vmess://eyJhZGQiOiJ2MnVzMDIuaXN4YS50b3AiLCJob3N0IjoiIiwiaWQiOiIxOTQxMzA5My1jNmVlLTRiYmQtYjQ5MS0xYmI1NDFiZDcwZjkiLCJuZXQiOiJ3cyIsInBhdGgiOiJcL3JheSIsInBvcnQiOiI0NDMiLCJwcyI6ImlzeC55dC0wMiIsInRscyI6InRscyIsInYiOjIsImFpZCI6MCwidHlwZSI6Im5vbmUifQo= 3 | vmess://eyJhZGQiOiJ2MnVzMDMuaXN4YS50b3AiLCJob3N0IjoiIiwiaWQiOiIyOGExODZlOS1hOGFmLTQ3OTItYWVmNi1lYzg0OTdlOTI3ZDMiLCJuZXQiOiJ3cyIsInBhdGgiOiJcL3JheSIsInBvcnQiOiI0NDMiLCJwcyI6ImlzeC55dC0wMyIsInRscyI6InRscyIsInYiOjIsImFpZCI6MCwidHlwZSI6Im5vbmUifQo= 4 | -------------------------------------------------------------------------------- /SS-SSR-V2RAY/V2RAY/V2RAYSub.txt: -------------------------------------------------------------------------------- 1 | dm1lc3M6Ly9leUpoWkdRaU9pSjJNblZ6TURFdWFYTjRZUzUwYjNBaUxDSm9iM04wSWpvaUlpd2lhV1FpT2lJME4yVTFNV0ZsT1MwM01EUmhMVFF6WWpZdFlXTXpPUzFpWTJRMlltSmpPRFF6TnpnaUxDSnVaWFFpT2lKM2N5SXNJbkJoZEdnaU9pSmNMM0poZVNJc0luQnZjblFpT2lJME5ETWlMQ0p3Y3lJNkltbHplQzU1ZEMwd01TSXNJblJzY3lJNkluUnNjeUlzSW5ZaU9qSXNJbUZwWkNJNk1Dd2lkSGx3WlNJNkltNXZibVVpZlFvPQ0Kdm1lc3M6Ly9leUpoWkdRaU9pSjJNblZ6TURJdWFYTjRZUzUwYjNBaUxDSm9iM04wSWpvaUlpd2lhV1FpT2lJeE9UUXhNekE1TXkxak5tVmxMVFJpWW1RdFlqUTVNUzB4WW1JMU5ERmlaRGN3WmpraUxDSnVaWFFpT2lKM2N5SXNJbkJoZEdnaU9pSmNMM0poZVNJc0luQnZjblFpT2lJME5ETWlMQ0p3Y3lJNkltbHplQzU1ZEMwd01pSXNJblJzY3lJNkluUnNjeUlzSW5ZaU9qSXNJbUZwWkNJNk1Dd2lkSGx3WlNJNkltNXZibVVpZlFvPQ0Kdm1lc3M6Ly9leUpoWkdRaU9pSjJNblZ6TURNdWFYTjRZUzUwYjNBaUxDSm9iM04wSWpvaUlpd2lhV1FpT2lJeU9HRXhPRFpsT1MxaE9HRm1MVFEzT1RJdFlXVm1OaTFsWXpnME9UZGxPVEkzWkRNaUxDSnVaWFFpT2lKM2N5SXNJbkJoZEdnaU9pSmNMM0poZVNJc0luQnZjblFpT2lJME5ETWlMQ0p3Y3lJNkltbHplQzU1ZEMwd015SXNJblJzY3lJNkluUnNjeUlzSW5ZaU9qSXNJbUZwWkNJNk1Dd2lkSGx3WlNJNkltNXZibVVpZlFvPQ0K -------------------------------------------------------------------------------- /SS-SSR-V2RAY/requirements.txt: -------------------------------------------------------------------------------- 1 | certifi==2020.12.5 2 | chardet==4.0.0 3 | idna==2.10 4 | Pillow==8.1.2 5 | pyzbar==0.1.8 6 | requests==2.25.1 7 | urllib3==1.25.11 8 | --------------------------------------------------------------------------------