19-20年开发的,对阅读速度提升挺大的,也便于快速提高认知水平,版本太多就把这个能用的备份出来。
import pyautogui as at
import keyboard
import time
from threading import Thread,Lock
# 带有enter翻页和1秒内不翻页功能
lock = Lock()
over_time_is = int(input('请输入自动翻页时间:'))
over_time = over_time_is # 设置翻页时间
stay_time = 0.8 # 剩余时间低于这个数不翻页(防止手动翻页后再自动翻页)
def next_page():
"""
自动翻页:按时间点击下一页 当小于设定时间后按下pagedown
:return:
"""
global over_time
while True:
try:
if over_time>0:
time.sleep(0.1)
lock.acquire()
over_time -=0.1
lock.release()
else:
at.press('pagedown')
over_time = over_time_is # 翻页并设置时间为输入的时间,然后循环重新计时
except:
pass
def clean_time():
"""
# 手动按下翻页后调用此方法清除计时时间并重新计时。
:return:
"""
lock.acquire()
global over_time
over_time = over_time_is
lock.release()
print('时间重置')
def clear_time():
"""
监测到手动按下space或者pagedown翻页后,重置自动翻页时间
监测到按下enter后,调用pagedown翻页函数实现手动翻页(用于早期阅读器版本不支持回车翻页)
:return:
"""
global over_time
while True:
keyboard.add_hotkey('space',clean_time)
keyboard.add_hotkey('pagedown',clean_time)
keyboard.add_hotkey('enter',enter_page_down)
#注释掉暂停功能
# keyboard.add_hotkey('-',pause,args=(1,))
# keyboard.add_hotkey('+',pause,args=(0,))
break
def enter_page_down():
"""
检查如果声誉时间大于翻页时间则pagedown,用于防止到时间的瞬间按下翻页键造成两次翻页
:return:
"""
global over_time
try:
if over_time > stay_time:
at.press('pagedown')
over_time = over_time_is
time.sleep(0.3)
else:
pass
except:
pass
# 监听翻页按键 #暂时删除,加入上面cleartime
# def listen_double_click():
# while True:
# keyboard.add_hotkey('enter',enter_page_down)
# break
#使用+-号暂停
def pause(sign):
global over_time
if sign == 1: # 暂停
over_time += 1000000
print('已暂停')
if sign == 0:
over_time -=3000000
print('继续')
# 监听翻页指令鼠标位置(用轨迹球时贼好用)
def mouse_pagedown():
while True:
try:
position = at.position() # 设置鼠标触发坐标 左上角是0,0
if position[0]< 50: #修改这个打开关闭鼠标触摸翻页功能 默认100
enter_page_down() # 如果大于stay时间则翻页并重置时间
time.sleep(0.1)# 0.3该0.1 加快连续翻页
position = at.position()
if position[0]>130:
pass
else:
# at.moveTo(120,850)
at.moveTo(120,position[1])
print(position)
except Exception as e:
print(e)
t1 = Thread(target = next_page) #时间自动翻页功能
t11 = Thread(target = clear_time) # 监测键盘并调用翻页功能
#暂时注释鼠标移动翻页
t13 = Thread(target = mouse_pagedown)
t1.start()
t11.start()
t13.start()
t1.join()
t11.join()
t13.join()
