├── .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 |
--------------------------------------------------------------------------------