Skip to content

Commit 9783e6e

Browse files
committed
修改douyin单条下载问题、v2ray问题
1 parent d1f3e68 commit 9783e6e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+255
-2994
lines changed

001-Downloader/config.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# 常用配置模块
22
[common]
33
#软件使用截止日期
4-
expired_time=2021/12/15 23:59:59
4+
expired_time=2022/12/15 23:59:59
55

66
#app的版本名称
7-
version_name=1.0.1
7+
version_name=1.0.2
88

99
#app的版本号
10-
version_code=100
10+
version_code=102

001-Downloader/douyin/dy_download.py

Lines changed: 14 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,13 @@ def start(self, url, path):
6464

6565
# 单条数据页面
6666
def parse_single(self):
67-
session = requests_html.HTMLSession()
68-
html = session.get(self.single)
69-
70-
result = re.findall(r'id="RENDER_DATA".+?json">(.+?)</script>', html.text)[0]
71-
urls = parse.unquote_plus(result)
72-
jsonObj = json.loads(urls)
73-
67+
url = re.findall('http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+', self.single)[
68+
0]
69+
r = requests.get(url=url)
70+
key = re.findall('video/(\d+)?', str(r.url))[0]
71+
jx_url = f'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={key}' # 官方接口
72+
js = json.loads(requests.get(url=jx_url, headers=self.headers).text)
73+
detail = js['item_list'][0]
7474
# 作者信息
7575
author_list = []
7676
# 无水印视频链接
@@ -80,26 +80,10 @@ def parse_single(self):
8080
# 作者id
8181
nickname = []
8282
max_cursor = 0
83-
k: str = ''
84-
for key in jsonObj:
85-
if key.startswith('C_'):
86-
awemeObj = jsonObj[key]
87-
if 'aweme' in awemeObj:
88-
try:
89-
detail = awemeObj['detail']
90-
break
91-
except:
92-
pass
93-
# if ('C_12' in jsonObj):
94-
# detail = jsonObj['C_12']['aweme']['detail']
95-
# elif ('C_14' in jsonObj):
96-
# detail = jsonObj['C_14']['aweme']['detail']
97-
# else:
98-
# detail = jsonObj['C_0']['aweme']['detail']
9983
author_list.append(str(detail['desc']))
100-
video_list.append(str("https:" + detail['video']['playAddr'][0]['src']))
101-
aweme_id.append(str(detail['awemeId']))
102-
nickname.append(str(detail['authorInfo']['nickname']))
84+
video_list.append(str(detail['video']['play_addr']['url_list'][0]).replace('playwm', 'play'))
85+
aweme_id.append(str(detail['aweme_id']))
86+
nickname.append(str(detail['author']['nickname']))
10387
Downloader.print_ui('开始下载单个视频' + video_list[0])
10488
self.videos_download(1, author_list, video_list, aweme_id, nickname, max_cursor)
10589

@@ -112,10 +96,11 @@ def Find(self, string):
11296

11397
# 判断个人主页api链接
11498
def judge_link(self):
115-
user_url = self.user
99+
user_url: str = self.user
116100

117101
Downloader.print_ui('----为您下载多个视频----\r')
118-
key = re.findall('/user/(.*?)\?', str(user_url))[0]
102+
103+
key = re.findall('/user/(.*?)$', str(user_url))[0]
119104
if not key:
120105
key = user_url[28:83]
121106
Downloader.print_ui('----' + '用户的sec_id=' + key + '----\r')
@@ -273,7 +258,7 @@ def videos_download(self, count, author_list, video_list, aweme_id, nickname, ma
273258
break
274259

275260
try:
276-
video = requests.get(video_list[i]) # 保存视频
261+
video = requests.get(video_list[i], headers=self.headers) # 保存视频
277262
start = time.time() # 下载开始时间
278263
size = 0 # 初始化已下载大小
279264
chunk_size = 100 # 每次下载的数据大小

002-V2rayPool/core/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class Config:
1212
def __init__(self):
1313
self.config = configparser.ConfigParser()
1414
parent_dir = os.path.dirname(os.path.abspath(__file__))
15-
self.config_path = os.path.join(parent_dir, 'config.json')
15+
self.config_path = os.path.join(Config.__v2ray_core_path, 'config.json')
1616
self.json_path = os.path.join(parent_dir, 'json_template')
1717
# self.config.read(self.config_path)
1818

002-V2rayPool/core/config.json

Lines changed: 0 additions & 102 deletions
This file was deleted.

002-V2rayPool/db/db_main.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ def start_random_v2ray_by_local(self, isSysOn=False):
3333
"""从本地随机启动一个可用的proxy"""
3434
urls = self.load_enable_urls_by_local()
3535
for url in urls:
36-
if client.Creator().v2ray_start_with_log(random.choice(urls),isSysOn) is False:
36+
if client.Creator().v2ray_start_with_log(random.choice(urls), isSysOn) is False:
3737
time.sleep(1)
3838
continue
3939
time.sleep(2)
@@ -72,6 +72,8 @@ def load_urls_and_save_auto(self):
7272
def load_urls_by_not_proxy(self, save_local=True):
7373
all_urls = []
7474
# 1. 先把不需要代理的先请求下来
75+
self.__add_urls_de_dup(all_urls, PNTWGithubV2ray().get_urls())
76+
print("获取https://hub.xn--gzu630h.xn--kpry57d/freefq/free后数目:%d" % len(all_urls))
7577
self.__add_urls_de_dup(all_urls, PNSsfree().get_urls())
7678
print("获取https://view.ssfree.ru/后数目:%d" % len(all_urls))
7779
self.__add_urls_de_dup(all_urls, PNFreevpnX().get_urls())
@@ -118,6 +120,8 @@ def load_urls_by_net(self, proxy_url=None, save_local=True, need_proxy=True):
118120
"""
119121
all_urls = []
120122
# 1. 先把不需要代理的先请求下来
123+
self.__add_urls_de_dup(all_urls, PNTWGithubV2ray().get_urls())
124+
print("获取https://hub.xn--gzu630h.xn--kpry57d/freefq/free后数目:%d" % len(all_urls))
121125
self.__add_urls_de_dup(all_urls, PNSsfree().get_urls())
122126
print("获取https://view.ssfree.ru/后数目:%d" % len(all_urls))
123127
self.__add_urls_de_dup(all_urls, PNFreevpnX().get_urls())

002-V2rayPool/db/net.py

Lines changed: 34 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
@Author :xhunmon
77
88
"""
9+
import json
910

1011
from base.net_proxy import Net
1112

1213
import re
1314
import time
15+
import chardet
1416

1517

1618
def re_vmess_ss_trojan(pattern, html) -> []:
@@ -39,17 +41,23 @@ def re_vmess_ss_trojan(pattern, html) -> []:
3941

4042

4143
class PYCheck(Net):
42-
def get_curren_ip(self):
44+
def get_curren_ip(self, url='https://ip.cn/api/index?ip=&type=0'):
4345
"""获取内容"""
4446
try:
45-
r = self.request_zh('https://2021.ip138.com')
46-
if r.status_code != 200:
47-
return None
48-
r.encoding = r.apparent_encoding
49-
results = re.findall(r'\[<a.+?>(.+?)</a>.+?:(.+?)\n</p>', r.text, re.DOTALL)
50-
if not results:
51-
return None
52-
return results[0]
47+
r = self.request_zh(url)
48+
if r.status_code == 200:
49+
charset = chardet.detect(r.content)
50+
content = r.content.decode(charset['encoding'])
51+
r.encoding = r.apparent_encoding
52+
# {"rs":1,"code":0,"address":"德国 Hessen ","ip":"51.38.122.98","isDomain":0}
53+
results = json.loads(content)
54+
if not results:
55+
return None
56+
return [results['ip'], results['address']]
57+
elif r.status_code == 301 or r.status_code == 302 or r.status_code == 303:
58+
location = r.headers['Location']
59+
time.sleep(1)
60+
return self.get_curren_ip(location)
5361
except Exception as e:
5462
print(e)
5563
return None
@@ -72,6 +80,23 @@ def get_urls(self) -> []:
7280
return None
7381

7482

83+
class PNTWGithubV2ray(Net):
84+
"""
85+
# https://hub.xn--gzu630h.xn--kpry57d/freefq/free
86+
"""
87+
88+
def get_urls(self) -> []:
89+
try:
90+
r = self.request(r'https://hub.xn--gzu630h.xn--kpry57d/freefq/free')
91+
if r.status_code != 200:
92+
return None
93+
r.encoding = r.apparent_encoding
94+
return re_vmess_ss_trojan(r'"%s"', r.text)
95+
except Exception as e:
96+
print(e)
97+
return None
98+
99+
75100
class PNSsfree(Net):
76101
"""
77102
https://view.ssfree.ru/

003-Keywords/Necklace/Necklace.jpg

21.4 KB
Loading

003-Keywords/Necklace/Necklace.xlsx

32.6 KB
Binary file not shown.

0 commit comments

Comments
 (0)